Submission #1031958

#TimeUsernameProblemLanguageResultExecution timeMemory
1031958GangstaStrange Device (APIO19_strange_device)C++14
0 / 100
5060 ms524288 KiB
#include "bits/stdc++.h" #define ll long long int #define pb push_back #define pii pair<ll,ll> #define ff first #define ss second #define sz size() const int N = 2e5 + 1; using namespace std; ll n, a, b, ans = 0; set <pii> s; vector <pii> v; int main(){ cin >> n >> a >> b; for(int i = 1; i <= n; i++){ ll x, y; cin >> x >> y; if(b == 1){ if(y - x + 1 >= a) return cout << a,0; ll san = (2*x) % a, san1 = (2*y) % a; if(san <= san1){ v.pb({san,1}); v.pb({san1,0}); } else{ v.pb({0,1}); v.pb({san1,0}); v.pb({san,1}); v.pb({a-1,0}); } continue; } for(ll j = x; j <= y; j++){ ll san = j + j/b; san %= a; int san1 = j % b; s.insert({san,san1}); } ans = (int)s.sz; } if(b == 1){ ll ac = 0, bas = 1e18; for(auto i: v){ if(i.ss == 1){ ac++; bas = min(bas,i.ff); } else{ ac--; if(ac == 0){ ans += i.ff - bas + 1; bas = 1e18; } } } } cout << ans; }
#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...