您的位置:首页 > 其它

第一篇!试试手

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();
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: