Submission #187335

#TimeUsernameProblemLanguageResultExecution timeMemory
187335wet_waterRemittance (JOI19_remittance)C++14
55 / 100
1012 ms19412 KiB
#include <iostream> #include <fstream> #include <algorithm> #include <queue> #include <iomanip> #include <map> #include <string.h> #include <math.h> #include <set> #define MAX_N 1000005 #define f first #define s second using namespace std; typedef pair<int, int> ii; int A[MAX_N], B[MAX_N]; int N; void solve() { cin >> N; for (int i = 0; i < N; i ++) { cin >> A[i] >> B[i]; } int carry; for (int ii = 0; ii < 100; ii ++) { for (int i = 0; i < N; i ++) { if (A[i] > B[i]) { carry = ((A[i] - B[i]) / 2); A[i] -= ((A[i] - B[i]) / 2) * 2; A[(i + 1) % N] += carry; } } } bool flag = true; for (int i = 0; i < N; i ++) { flag = (flag && (A[i] == B[i])); } if (flag) cout << ("Yes") << endl; else { bool flag2 = true; for (int i = 0; i < N; i ++) flag2 = (flag2 && (A[i] - 1 == B[i])); for (int i = 0; i < N; i ++) { if (A[i] > 1) break; if (i == N - 1) flag2 = false; } cout << (flag2 ? "Yes" : "No") << endl; } return; } int main() { int T; T = 1; for (int i = 0; i < T; i ++) { solve(); } return (0); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...