# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
778914 | 2023-07-11T02:58:38 Z | shoryu386 | 송금 (JOI19_remittance) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; #define int long long main(){ int n; cin >> n; int a[n], b[n]; for (int x = 0;x < n; x++) cin >> a[x] >> b[x]; #define SUS 40000 for (int y = 0; y < SUS; y++){ for (int x = 0; x < n; x++){ if (a[x] >= b[x] + 2){ int trans = (a[x] - b[x])/2; a[x] -= 2*trans; if (x != n-1) a[x+1] += trans; else a[0] += trans; } } } bool wtf = true; for (int x = 0; x < n; x++){ //if (a[x] >= b[x] + 2) assert(false); if (a[x] != b[x]) wtf = false; } if (wtf) cout << "Yes"; else assert(n != 2), cout << "No"; } #include <bits/stdc++.h> using namespace std; #define int long long main(){ int n; cin >> n; int a[n], b[n]; for (int x = 0;x < n; x++) cin >> a[x] >> b[x]; #define SUS 40000 for (int y = 0; y < SUS; y++){ for (int x = 0; x < n; x++){ if (a[x] >= b[x] + 2){ int trans = (a[x] - b[x])/2; a[x] -= 2*trans; if (x != n-1) a[x+1] += trans; else a[0] += trans; } } } bool wtf = true; for (int x = 0; x < n; x++){ //if (a[x] >= b[x] + 2) assert(false); if (a[x] != b[x]) wtf = false; } if (wtf) cout << "Yes"; else { if (n == 2){ if (a[0] == b[0] + 1 && a[1] == b[1] + 1) { cout << "Yes"; return 0;} assert(false); } cout << "No"; } }