Submission #222818

#TimeUsernameProblemLanguageResultExecution timeMemory
222818atoizStrange Device (APIO19_strange_device)C++14
100 / 100
938 ms75900 KiB
/*input 2 16 13 2 5 18 18 */ #include <iostream> #include <map> #include <algorithm> using namespace std; const int64_t INF = 2e18; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int N; int64_t A, B; cin >> N >> A >> B; int64_t M = A / __gcd(A, B + 1); M = (INF / M < B ? INF : B * M); map<int64_t, int> vals; while (N--) { int64_t L, R; cin >> L >> R; ++R; if (R - L >= M) return cout << M << endl, 0; L %= M, R %= M; if (L < R) ++vals[L], --vals[R]; else ++vals[0], --vals[R], ++vals[L], --vals[M]; } int64_t last = 0, cnt = 0; int cur = 0; for (auto p : vals) { cnt += (cur > 0) * (p.first - last); last = p.first; cur += p.second; } cout << cnt << 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...