Submission #813542

# Submission time Handle Problem Language Result Execution time Memory
813542 2023-08-07T19:57:49 Z Charizard2021 Coin Collecting (JOI19_ho_t4) C++17
0 / 100
1 ms 212 KB
#include <bits/stdc++.h>
using namespace std;
const int N = 200001;
int dp[2][N];
int main(){
    int n;
    cin >> n;
    int ans = 0;
    for(int i = 0; i < 2 * n; i++){
        int x, y;
        cin >> x >> y;
        if(x < 1){
            ans += 1 - x;
            x = 1;
        }
        if(x > n){
            ans += x - n;
            x = n;
        }
        if(y < 1){
            ans += 1 - y;
            y = 1;
        }
        if(y > 2){
            ans += y - 2;
            y = 2;
        }
        dp[y - 1][x]++;
    }
    for(int i = 1; i <= n; i++){
        dp[0][i] -= 1;
        dp[1][i] -= 1;
        if(dp[0][i] * dp[1][i] < 0){
            if(dp[0][i] < 0){
                int x = min(abs(dp[0][i]), dp[1][i]);
                dp[0][i] += x;
                dp[1][i] -= x;
                ans += x;
            }
            else{
                int x = min(abs(dp[1][i]), dp[0][i]);
                dp[0][i] -= x;
                dp[1][i] += x;
                ans += x;
            }
        }
        ans += abs(dp[0][i]) + abs(dp[1][i]);
        dp[0][i + 1] += dp[0][i];
        dp[1][i + 1] += dp[1][i];
    }
    cout << ans << "\n";
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Incorrect 1 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Incorrect 1 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Incorrect 1 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -