求一下,这题为什么re
查看原帖
求一下,这题为什么re
123346
1qaz0okm楼主2021/10/27 14:55
#include<iostream>
#include<fstream> 
using namespace std;
ifstream fin("airport1.in");
ifstream fout("airport1.ans");
int main(){
	int n,m1,m2,a1,b1,a2,b2,gn[1000]={0},gw[1000]={0},hb[100]={0},js=0,lqs,out;
	bool gnt[100][1000]={0},gwt[100][1000]={0},lq=0;//定义廊桥空位 
	cin>>n>>m1>>m2;
	//fin>>n>>m1>>m2;fout>>out;
	for(int i=1;i<=m1;i++){//输入国内数据 
		cin>>a1>>b1;
		//fin>>a1>>b1;
		gn[a1]=b1;
	}
	for(int i=1;i<=m2;i++){//输出国外数据 
		cin>>a2>>b2;
		//fin>>a2>>b2;
		gw[a2]=b2;
	}
	for(int i=0;i<=n;i++){//分配国内廊桥 
		int j=n-i;		  //分配国外廊桥 
		//cout<<'\n';
		if(i!=0){		  //处理国外数据 
			for(int q=1;q<=1000;q++){
				if(gn[q]!=0){
					lq=0;
					for(int t=1;t<=i;t++){
						lqs=t;lq=0;js=0;
						for(int w=q;w<=gn[q];w++){
							if(gnt[t][w]==1){
								lq=1;
								break;
							}
							else js++;
							if(js==gn[q]-q+1) break;
						}
						if(js==gn[q]-q+1) break;
					}
					if(lq==1) continue;
					if(lq==0){
						hb[i]++;
						//cout<<q<<" "<<gn[q]<<'\n';
						for(int e=q;e<=gn[q];e++){
							gnt[lqs][e]=1;
						}
					}
				}	
			}
		}
		if(j!=0){		  //处理国外数据 
			for(int q=1;q<=1000;q++){
				if(gw[q]!=0){
					lq=0;
					for(int t=1;t<=j;t++){
						lqs=t;lq=0;js=0;
						for(int w=q;w<=gw[q];w++){
							if(gwt[t][w]==1){
								lq=1;
								break;
							}
							else js++;
							if(js==gw[q]-q+1) break;
						}
						if(js==gw[q]-q+1) break;
					}
					if(lq==1) continue;
					if(lq==0){
						hb[i]++;
						//cout<<q<<" "<<gw[q]<<'\n';
						for(int e=q;e<=gw[q];e++){
							gwt[lqs][e]=1;
						}
					}
				}	
			}
		}
		for(int r=1;r<=n;r++){//重置廊桥数据 
			for(int y=1;y<=1000;y++){
				gnt[r][y]=0;
				gwt[r][y]=0;
			}
		}
	}
	int end=0;
	for(int i=1;i<=n;i++){
		if(hb[i]>end) end=hb[i];
	}
	cout<<end;
	//cout<<'\n'<<out;
	return 0;
} 
2021/10/27 14:55
加载中...