考虑不连续情况!!!
#include<stdio.h>
int main() {
int zuo[20][6] = { 0 }, f[20];
int n = 0, i = 20;
while (n < i) {
int a = 0;
while (a < 5) {
zuo[n][a] = n * 5 + a + 1;
a++;
}
f[n] = 5;
n++;
}i = 0;
scanf("%d", &n);
int zh[100] = { 0 };
while (i < n) {
scanf("%d", &zh[i]); i++;
}
int a= 0, temp = 0, b = 0;
while(a<n&&n<=100){
temp=0;i = 0;
while (i < 20)
{
b = 0;
if (f[i] >= zh[a]) {
while (b < zh[a])
{
printf("%d ", zuo[i][b + 5 - f[i]]);
b++;
temp=1;
}
f[i] = f[i] - zh[a];
break;
}
i++;
}
if(temp==0)
{int c=0;
i=0;
while(b<zh[a])
{
if(f[i]>0)
{
printf("%d ",zuo[i][5-f[i]+c]);b++; f[i] = f[i] -1;
}
if(f[i]==0)
{
c=0;
i++;
}
}
}
a++;printf("\n");
}
return 0;
}