Submission #562760

#TimeUsernameProblemLanguageResultExecution timeMemory
562760tatyamStrange Device (APIO19_strange_device)C++17
100 / 100
820 ms113428 KiB
#include <iostream> #include <vector> #include <numeric> #include <map> using namespace std; using u64 = uint64_t; const u64 MAX = 1e18; int main(){ cin.tie(nullptr); ios::sync_with_stdio(false); int n; u64 A, B; cin >> n >> A >> B; A /= gcd(A, B + 1); const u64 P = MAX / A < B ? MAX + 1 : A * B; vector<pair<u64, u64>> range(n); map<u64, int> imos; for(auto& [L, R] : range){ cin >> L >> R; R++; if(R - L >= P){ cout << P << endl; return 0; } L %= P; R %= P; imos[L]++; imos[R]--; if(L > R){ imos[0]++; imos[P]--; } } u64 ans = 0, prev = 0, cnt = 0; for(auto [key, val] : imos){ if(cnt) ans += key - prev; cnt += val; prev = key; } cout << ans << endl; }
#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...