asignación PTA_L1-049 asiento fósforo de la escala (20 puntos)

asignación de asiento escalera partido L1-049

Escalera torneo cada año un gran número de miembros del equipo, para asegurar que todos los miembros de la misma escuela no son adyacentes, el asiento asignado se ha convertido en algo problemático. Con este fin hemos desarrollado la siguiente estrategia: Supongamos que un estadio escuelas participantes tienen N, i-escuelas tienen M [i] equipos, 10 jugadores por equipo. De manera que todos los jugadores de la escuela en un solo archivo, i + 1-jugadores del equipo detrás de los jugadores i-equipo. Desde la escuela por primera vez una, la escuela Nº 1 jugador sentado a su vez, luego dos primeros jugadores de la escuela ...... y así sucesivamente. Si el equipo sólo duran de escuela no se le ha asignado un asiento, que tendrá que organizar sus jugadores se sientan compartimentos. Esta pregunta se requiere para escribir un programa para generar automáticamente un número de asiento para el equipo de la escuela, la numeración desde 1.

Formato de entrada:
entrada de participar en el número de fila dada de Universidades N (número entero positivo no superior a 100); una segunda fila de N da un número entero positivo no superior a 10, en el que el i correspondiente a las i-th equipos universidades número, separadas por un espacio entre los números.
Los formatos de salida:
de una universidad de los primeros equipos para iniciar secuencialmente la salida de los jugadores número de asiento. Cada equipo por línea, entre el número de asiento separadas por un espacio, la línea de principio a fin puede no tener el espacio extra. Además, la primera línea de cada universidades por número "# X" de salida de la escuela X, a partir de 1.

de entrada de la muestra:

3
3 4 2

Resultado de muestra:

# 1
1 4 7 10 13 16 19 22 25 28
31 34 37 40 43 46 49 52 55 58
61 63 65 67 69 71 73 75 77 79
# 2
2 5 8 11 14 17 20 23 26 29
32 35 38 41 44 47 53 56 59 50
62 64 66 68 70 72 74 76 78 80
82 84 86 88 90 92 94 96 98 100
# 3
3 6 9 12 15 18 21 24 27 30
33 36 39 42 45 48 51 54 57 60

Ideas: el uso de contenedores STL (vector) de la (depositar diferentes elementos).
código completo:

#include<bits/stdc++.h>
using namespace std;
int a[105];
bool flag[105];
vector <int> Vec[105];
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    int ans=1;
    int num=1;
    while(num-1!=n)
    {
        for(int i=0;i<n;i++)
        {
            if(flag[i])
            {
                continue;
            }
            Vec[i].push_back(ans);
            if(num==n)
            {
                ans+=2;
            }
            else
            {
                ans++;
            }
            int x=Vec[i].size();
            if(x==a[i]*10)
            {
                num++;
                flag[i]=1;
            }
        }
    }
    int bet=0;
    for(int i=0;i<n;i++)
    {
        cout<<"#"<<i+1<<endl;
        int x=Vec[i].size();
        for(int j=0;j<x;j++)
        {
            bet++;
            if(bet==10)
            {
                cout<<Vec[i][j]<<endl;
                bet=0;
            }
            else
            {
                cout<<Vec[i][j]<<" ";
            }
        }
    }
    return 0;
}

Enlace a la pregunta original:
https://pintia.cn/problem-sets/994805046380707840/problems/994805081289900032

Publicado 87 artículos originales · 98 fue elogiado · vistas 4945

Supongo que te gusta

Origin blog.csdn.net/qq_45856289/article/details/104885834
Recomendado
Clasificación