ACM/ICPC 2018亚洲区预选赛北京赛站网络赛题目4 : 80 Days

#include <map>
#include <cstring>
#include <string>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cctype>
#include <stack>
#include <list>
#include <queue>
#include <cmath>
#include <vector>
typedef long long ll;
using namespace std;
//const double pi=acos(-1);
const int maxn=1e6+5;
ll a[maxn],b[maxn];
int main(){
    int T,n,c;
    scanf("%d",&T);
    while (T--) {
        memset(a, 0, sizeof(a));
        memset(b, 0, sizeof(b));
        scanf("%d%d",&n,&c);
        for(int i=1;i<=n;i++){
            scanf("%lld",&a[i]);
        }
        for(int i=1;i<=n;i++){
            scanf("%lld",&b[i]);
        }
        int flag=0;
        for(int i=1;i<=n;i++){
            ll mon=c;
            mon+=a[i]-b[i];
           // cout<<" for:"<<mon<<endl;
            if(mon<0)continue;
            int cnt=1,f=0;
            int ix=i+1;
            while (mon>=0) {
                if(ix>n&&cnt<n){
                    ix=1;
                }
                mon+=a[ix]-b[ix];
                //cout<<" while:"<<mon<<endl;
                cnt++;
                ix++;
                if(cnt==n){
                    f=1;
                    break;
                }
            }
            if(f==1&&mon>=0){
                printf("%d\n",i);
                flag=1;
                break;
            }
        }
        if(!flag){
            printf("-1\n");
        }
        
    }
    return 0;
}


猜你喜欢

转载自blog.csdn.net/weixin_41391865/article/details/82814449