답안 #1010861

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1010861 2024-06-29T12:50:55 Z vivkostov 송금 (JOI19_remittance) C++14
0 / 100
1 ms 344 KB
#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
void speed()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
}
long long int n,a[200005],b[200005];
void fin(int i,long long int st)
{
    long long int ost=st;
    //cout<<endl<<i<<endl;
    for(int j=i-1;j>=0;j--)
    {
        //cout<<j<<" ";
        if(j==0)j=n;
        st*=2;
        if(st>=2000000000)
        {
            cout<<"No"<<endl;
            exit(0);
        }
        if(a[j]-b[j]>0)
        {
            int g=min(a[j]-b[j],st);
            st-=g;
            a[j]-=g;
            a[i]+=ost;
            if(st==0)return;
        }
    }
}
void read()
{
    cin>>n;
    int brr=0,brr1=0;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i]>>b[i];
        if(b[i]==0)brr++;
        brr1+=a[i];
    }
    if(brr==0)
    {
        if(brr1)cout<<"No"<<endl;
        else cout<<"Yes"<<endl;
        return;
    }
    int pren=0;
    for(int i=1;i<=n;i++)
    {
        a[i]+=pren;
        if(a[i]>=b[i])
        {
            if((a[i]-b[i])%2==0)pren=(a[i]-b[i])/2;
            else
            {
                fin(i,1);
                pren=(a[i]-b[i])/2;
            }
        }
        else fin(i,b[i]-a[i]);
        //cout<<i<<" "<<a[5]<<" "<<pren<<" "<<a[3]<<endl;
    }
    cout<<"Yes"<<endl;
}
int main()
{
    speed();
    read();
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Incorrect 1 ms 344 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Incorrect 1 ms 344 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Incorrect 1 ms 344 KB Output isn't correct
3 Halted 0 ms 0 KB -