Submission #1010720

#TimeUsernameProblemLanguageResultExecution timeMemory
1010720danikoynovRemittance (JOI19_remittance)C++14
100 / 100
541 ms36436 KiB
#include<bits/stdc++.h>
#define endl '\n'

typedef long long ll;


const int MAX_N = 1e6 + 10;

int n;
ll a[MAX_N], b[MAX_N];
void solve()
{
    //std::cout << "Yes" << endl;
    //exit(0);
    std::cin >> n;
    for (int i = 1; i <= n; i ++)
        std::cin >> a[i] >> b[i];    
    
    while(true)
    {
        bool done = true;
        for (int i = 1; i <= n; i ++)
        {
            int nxt = i + 1;
            if (i == n)
                nxt = 1;

            ll left = a[i] - b[i];
            if (left < 0)
                left = 0;

            if (left % 2 == 1 && b[i] > 0)
                left ++;
            left /= 2;

            a[i] -= left * 2;
            a[nxt] += left;
            if (left != 0)
                done = false;
        }

        if (done)
            break;
    }

    bool fine = true;
    for (int i = 1; i <= n; i ++)
        if (a[i] != b[i])
            fine = false;
    
    if (fine)
        std::cout << "Yes" << endl;
    else
        std::cout << "No" << endl;
}

void speed()
{
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(nullptr);
    std::cout.tie(nullptr);
}

int main()
{
    solve();
    return 0;
}
/**
2 
0 2
4 0
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...