| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 440392 | KULIKOLD | Strange Device (APIO19_strange_device) | C++17 | 1 ms | 204 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
//#pragma GCC optimize ("O3")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
const int DIM = 1E6+7;
pair<ll,ll> M[DIM];
const ll MAXN = 2E18;
ll mult(ll a,ll b){
ll mult = b;
b = 0;
while(a){
if (a&1)
b = min(b+mult,MAXN);
mult = min(MAXN,mult*2);
a/=2;
}
return b;
}
int solve(){
ll n,A,B;
cin>>n>>A>>B;
for(int i = 1;i<=n;++i){
cin>>M[i].first>>M[i].second;
}
ll gcd = __gcd(A,(B+1)%A);
ll d = A/gcd;
B = d*B;
vector<pair<ll,ll> > V;
ll cnt = 0,sum = 0;
for(int i = 1;i<=n;++i){
sum+=M[i].second-M[i].first+1;
ll start = M[i].first%B;
ll fin = B-1;
if (fin-start>M[i].second-M[i].first){
V.push_back({M[i].first%B,1});
V.push_back({M[i].second%B+1,-1});
continue;
}
V.push_back({start,1});
V.push_back({fin+1,-1});
M[i].first+=fin-start+1;
fin = M[i].second%B;
start = 0;
if (fin-start>M[i].second-M[i].first){
V.push_back({M[i].first%B,1});
V.push_back({M[i].second%B+1,-1});
continue;
}
V.push_back({start,1});
V.push_back({fin+1,-1});
M[i].second-=fin-start+1;
cnt+=(M[i].second-M[i].first)/B;
}
sort(V.begin(),V.end());
ll last = 0,res = 0;
for(int i = 0;i<int(V.size());++i){
res+=(V[i].first-last)*max(0ll,cnt-1);
last = V[i].first;
int cur = V[i].first;
cnt+=V[i].second;
while(i+1<V.size() && V[i+1].first==cur){
cnt+=V[++i].second;
}
}
res+=(B-last)*cnt;
cout<<sum-res<<endl;
return 1;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
assert(solve());
return 0;
}Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
