Submission #813542

#TimeUsernameProblemLanguageResultExecution timeMemory
813542Charizard2021Coin Collecting (JOI19_ho_t4)C++17
0 / 100
1 ms212 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...