第一篇!试试手
2017-03-13 17:57
120 查看
CCF-2016-9 02题 火车购票问题
#include<iostream> #include<stdio.h> using namespace std; int mat[20][5]; void putMatrix() { int i,j; for(i=0;i<20;i++) { for(j=0;j<5;j++) { cout<<mat[i][j]; if(j==4) cout<<endl; else cout<<" "; } } cout<<endl; } void put(int m) { int i,j; for(i=0;i<20;i++) { for(j=0;j<5;j++) { if(mat[i][j]==0) { cout<<i*5+j+1<<" "; mat[i][j]=1; } } } cout<<endl; } int main() { int n; cin>>n; //memset(mat,sizeof(int),20*5);复习memset的用法 int i,j; for(i=0; i<20; i++) { for(j=0; j<5; j++) { mat[i][j]=0; } } for(i=0; i<n; i++) { int m; cin>>m; int cal,k; int flag=0;//用来判断是否能安排在一排座位上 for(j=0; j<20; j++) { if(flag) { break; } cal=0; for(k=0; k<5; k++) { if(mat[j][k]==0) { cal++; } if(cal>=m) { 4000 flag=1; int cal2=0; int l; for(l=0; l<5; l++) { if(cal2<m) { if(mat[j][l]==0) { cal2++; cout<<j*5+l+1<<" "; mat[j][l]=1; } } else { break; } } cout<<endl; //putMatrix(); } if(flag) { break; } } if(flag==0&&j==19) { put(m); //putMatrix(); } } } }