Submission #384155

#TimeUsernameProblemLanguageResultExecution timeMemory
384155valerikkRemittance (JOI19_remittance)C++17
15 / 100
1085 ms384 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main() {
#ifdef LOCAL
    freopen("input.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    vector<ll> a(n), b(n);
    for (int i = 0; i < n; i++) cin >> a[i] >> b[i];
    while (true) {
        bool ok = 0;
        for (int i = 0; i < n; i++) {
            if (a[i] > b[i] + 1) ok = 1;
        }
        if (!ok) break;
        for (int i = 0; i < n; i++) {
            if (a[i] > b[i] + 1) {
                ll x = (a[i] - b[i]) / 2;
                a[(i + 1) % n] += x;
                a[i] -= 2 * x;
            }
        }
    }
    for (int mask = 0; mask < (1 << n); mask++) {
        for (int st = 0; st < n; st++) {
            auto A = a;
            bool ok = 1;
            for (int i = 0; i < n; i++) {
                int p = (st + i) % n;
                if (a[p] > b[p]) {
                    a[p] -= 2;
                    if (a[p] < 0) ok = 0;
                    a[(p + 1) % n] += 1;
                }
            }
            if (ok && a == b) {
                cout << "Yes" << endl;
                return 0;
            } 
            a = A;
        }
    }
    cout << "No" << endl;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...