CSP题解|201609-2 火车购票|90分

#include <bits/stdc++.h>
using namespace std;
int main() {
	int ticketNum;cin>>ticketNum;
	bool arr[100][5]={false};
	while(ticketNum--){
		int n;cin>>n;
		bool isDone=false;
		for(int i =0;i<100;i++){
			//本行能不能一次性满足n张票
			int zeroNum=0;
			for(int j =0;j<5;j++){
				if(arr[i][j] == 0)zeroNum++;
			} 
			if(zeroNum>=n){
				//可以安排
				int num=0;
				for(int j =0;j<5;j++){
					if(arr[i][j] == 0){
						arr[i][j]=1;
						cout<<i*5+j+1<<" ";
						num++;
					}
					if(num == n){
						isDone = 1;
						break;
					}
				} 
			}
			if(isDone)break;
		}
		if(!isDone){
			//直接从小序号开始排
			int num=0;
			for(int i=0;i<100;i++){
				for(int j=0;j<5;j++){
					if(arr[i][j] == 0){
						arr[i][j] = 1;
						cout<<i*5+j+1<<" ";
						num++;
					}
					if(num == n)break;
				} 
				if(num == n)break;
			}
				
		}
		cout<<endl;
	}
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务