Submission #236708

#TimeUsernameProblemLanguageResultExecution timeMemory
236708meatrowRemittance (JOI19_remittance)C++17
0 / 100
5 ms384 KiB
#pragma GCC optimize("O3") //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") #include <bits/stdc++.h> using namespace std; using ll = long long; using ld = long double; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; vector<ll> a(n), b(n); vector<ll> lul(n + 33); bool nonzero = false; for (int i = 0; i < n; i++) { cin >> a[i] >> b[i]; lul[i] = a[i] - b[i]; nonzero |= lul[i]; } if (!nonzero) { cout << "Yes\n"; return 0; } // t[n - 1] = sigma(2^i * (a[i] - b[i])) / (2^n - 1) for (int i = 0; i + 1 < lul.size(); i++) { lul[i + 1] += lul[i] / 2; lul[i] %= 2; if (lul[i] < 0) { lul[i] += 2; lul[i + 1]--; } } if (find(lul.begin(), lul.end(), -1) != lul.end()) { cout << "No\n"; return 0; } reverse(lul.begin(), lul.end()); int pos = find(lul.begin(), lul.end(), 1) - lul.begin(); for (int i = pos; i < pos + n; i++) { if (!lul[i]) { cout << "No\n"; return 0; } } ll kek = 1; for (int i = pos + n; i < lul.size(); i++) { kek = kek * 2 + lul[i]; } a[n - 1] -= 2 * kek; a[0] += kek; for (int i = 0; i < n - 1; i++) { if (a[i] < b[i] || (a[i] - b[i]) % 2) { cout << "No\n"; return 0; } ll mem = (a[i] - b[i]) / 2; a[i] -= mem * 2; a[i + 1] += mem; } for (int i = 0; i < n; i++) { if (a[i] != b[i]) { cout << "No\n"; return 0; } } cout << "Yes\n"; return 0; }

Compilation message (stderr)

remittance.cpp: In function 'int main()':
remittance.cpp:29:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i + 1 < lul.size(); i++) {
                  ~~~~~~^~~~~~~~~~~~
remittance.cpp:50:26: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = pos + n; i < lul.size(); i++) {
                        ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...