Submission #1242051

#TimeUsernameProblemLanguageResultExecution timeMemory
1242051thangdz2k7Remittance (JOI19_remittance)C++20
100 / 100
144 ms18088 KiB
#include <bits/stdc++.h>

using namespace std;

void process(){
    int n; cin >> n;
    vector <int> A(n), B(n);
    for (int i = 0; i < n; ++ i) 
        cin >> A[i] >> B[i];

    while (true){
        bool ok = false;
        for (int i = 0; i < n; ++ i){
            if (A[i] > B[i] + 1){
                ok = true;
                int to = (A[i] - B[i]) / 2;
                A[i] -= to * 2;
                A[(i + 1) % n] += to;
            }
         }

         if (!ok) break;
    }

    for (int i = 0; i < n; ++ i) if (A[i] < B[i]){
        cout << "No" << "\n";
        return;
    }

    int eq = 0, gr = 0, ca = 0;

    for (int i = 0; i < n; ++ i){
        eq |= (A[i] == B[i]);
        gr |= (A[i] > B[i]);
        ca |= (A[i] > 1);
    }

    if ((!eq && ca) || !gr) cout << "Yes" << "\n";
    else cout << "No" << "\n";
}

int main(){

    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);

    process();
    return 0;

}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...