问题标题: 酷町堂:4255 游历列国

0
0
已解决
李显晨
李显晨
中级启示者
中级启示者

错误代码WA60:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<string>
#include<iomanip>
#include<algorithm>
#pragma GCC optimize(3)
using namespace std;
int a[101],b[101],n;
bool can(int st){
    bool x[1000];
    for(int i=0;i<1000;i++) x[i]=0;
    int sum=0;
    x[st]=1;
    sum+=a[st];
    sum-=b[st];
    if(sum<0) return 0;
    for(int j=0;j<n;j++){
        int h=-1,minn=0x3f3f3f3f;
        for(int i=0;i<n;i++){
            if(abs(b[i]-(sum+a[i]))<=minn&&x[i]==0&&(sum+a[i])>=b[i]){
                minn=abs(b[i]-(sum+a[i]));
                h=i;
            }
        }
        if(h==-1) continue;
        sum+=a[h];
        sum-=b[h];
        x[h]=1;
    }
    for(int i=0;i<n;i++){
        if(x[i]==0) return 0;
    }
    return 1;
}
int main(){
    cin>>n;
    for(int i=0;i<n;i++) cin>>a[i];
    for(int i=0;i<n;i++) cin>>b[i];
    for(int i=0;i<n;i++){
        if(can(i)){
            cout<<i+1;
            return 0;
        }
    }
    cout<<-1;
    return 0;
}

https://ke.codingtang.com/#/problem/problemSub?id=4255

求找错!!!

李显晨在2021-03-20 12:58:58追加了内容

ding

李显晨在2021-03-20 13:16:38追加了内容

ding

李显晨在2021-03-20 13:39:38追加了内容

ding


0
已采纳
汪宇航
汪宇航
新手启示者
新手启示者

如果是超时,可以用scanf、printf优化输入输出

0
我要回答