标签:ext cout alt names bre done http 分配 编号
火车购票问题(16年ccf)
1 #include<iostream> 2 using namespace std; 3 int arr[20][5]; 4 5 void FenPei(int a) 6 { 7 int count=0,Done = 0; 8 for(int y=1;y<=20;y++) 9 { 10 for(int x=1;x<=5;x++) 11 { 12 if(arr[y][x]==0&&count<a) count++;//数一排中连续空座的数目 13 } 14 if(count==a)//表示当前排有空座 ,分配空座,并将结果进行打印 15 { 16 int x=1; 17 while(arr[y][x]) x++;//定位到空座 18 //将空座置为1,打印输出座位号 19 while(count--) 20 { 21 arr[y][x]=1; 22 cout<<((y-1)*5+x); 23 x++; 24 if(count!=0) cout<<" "; 25 else cout<<endl; 26 } 27 Done = 1; 28 break; 29 } 30 count=0;//在数下一排前将计数器置0 31 } 32 if(Done==0){ 33 //遍历完毕没有发现空座 34 for(int y=1;y<=20;y++) 35 { 36 for(int x=1;x<=5;x++) 37 { 38 if(arr[y][x]==0) 39 { 40 if(a--) 41 { 42 //将空座置为1,打印输出座位号 43 arr[y][x]=1; 44 cout<<((y-1)*5+x); 45 if(a!=0) cout<<" "; 46 else cout<<endl; 47 } 48 } 49 } 50 } 51 } 52 53 } 54 int main() 55 { 56 int n=0,GouPiao[100]; 57 //初始化座位,置为0 58 for(int y=0;y<=20;y++) 59 { 60 for(int x=0;x<=5;x++) 61 arr[y][x] = 0; 62 } 63 64 cin>>n; 65 for(int i=0;i<n;i++) 66 { 67 cin>>GouPiao[i]; 68 } 69 for(int i=0;i<n;i++) 70 { 71 FenPei(GouPiao[i]); 72 } 73 return 0; 74 }
标签:ext cout alt names bre done http 分配 编号
原文地址:http://www.cnblogs.com/yxh-amysear/p/7469032.html