为啥是re啊,dev能出答案,用洛谷的在线ide答案不对,然后提交直接re。。。
查看原帖
为啥是re啊,dev能出答案,用洛谷的在线ide答案不对,然后提交直接re。。。
123346
1qaz0okm楼主2021/10/29 15:16
#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/29 15:16
加载中...