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