Submission #721503

#TimeUsernameProblemLanguageResultExecution timeMemory
721503GrandTiger1729Strange Device (APIO19_strange_device)C++17
10 / 100
5044 ms524288 KiB
#include <bits/stdc++.h> using namespace std; const int INF = 1e18 + 10; int main(){ cin.tie(0)->sync_with_stdio(0); int n; cin >> n; long long A, B; cin >> A >> B; if ((__int128_t)1 * A * B / __gcd(A, B + 1) >= INF){ long long ans = 0; for (int i = 0; i < n; i++){ long long l, r; cin >> l >> r; ans += r - l + 1; } cout << ans << '\n'; return 0; } long long D = (__int128_t)1 * A * B / __gcd(A, B + 1); set<long long> st; for (int i = 0; i < n; i++){ long long l, r; cin >> l >> r; for (long long j = l; j <= r; j++) st.insert(j % D); } // cerr << D << '\n'; // for (auto &v: st) // cerr << v << ' '; // cerr << endl; cout << st.size() << '\n'; return 0; }

Compilation message (stderr)

strange_device.cpp:4:22: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+18' to '2147483647' [-Woverflow]
    4 | const int INF = 1e18 + 10;
      |                 ~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...