Submission #961697

# Submission time Handle Problem Language Result Execution time Memory
961697 2024-04-12T10:38:34 Z Unforgettablepl Remittance (JOI19_remittance) C++17
0 / 100
1 ms 500 KB
    #include <bits/stdc++.h>
    using namespace std;

    #define int long long

    const int modulo = 1e9+7;

    int A[7];
    int B[7];
    int curr[7];
    int arr[7];

    int32_t main(){
        ios_base::sync_with_stdio(false);
        cin.tie(nullptr);
        int n;
        cin >> n;
        for(int i=0;i<n;i++)cin>>A[i]>>B[i];
        int start = 0;
        int power = 1;
        for(int i=1;i<n;i++){
            start+=power*(A[i]-B[i]);
            power*=2ll;
        }
        start+=power*(A[0]-B[0]);
        power*=2ll;
        power--;
        start/=power;
            arr[0]=start;
            bool works = true;
            for(int x=1;x<n;x++){
                arr[x]=arr[x-1]+A[x]-B[x];
                if(arr[x]<0)works=false;
                if(arr[x]&1)works=false;
                arr[x]/=2;
            }
            int backup = arr[n-1]+A[0]-B[0];
            if(backup&1)works=false;
            if(arr[0]!=backup/2)works=false;
            if(!works)goto shit;
            for(int x=0;x<n;x++)curr[x]=A[x];
            for(int rounds=1;rounds<40;rounds++){
                for(int x=0;x<n;x++){
                    int uses = min(arr[x],curr[x]/2);
                    curr[x]-=2*uses;
                    arr[x]-=uses;
                    curr[(x+1)%n]+=uses;
                }
            }
            for(int x=0;x<n;x++)if(curr[x]!=B[x])works=false;
            if(works){
                cout << "Yes\n";
                return 0;
            }
            shit:
        cout << "No\n";
    }
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 500 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 360 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 344 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Incorrect 0 ms 348 KB Output isn't correct
17 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 500 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 360 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 344 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Incorrect 0 ms 348 KB Output isn't correct
17 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 500 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 360 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 1 ms 348 KB Output is correct
13 Correct 1 ms 344 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Incorrect 0 ms 348 KB Output isn't correct
17 Halted 0 ms 0 KB -