# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
197730 | Ruxandra985 | Strange Device (APIO19_strange_device) | C++14 | 871 ms | 68716 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.
#include <bits/stdc++.h>
#define DIMN 5000010
using namespace std;
pair <long long,int> v[DIMN];
int main()
{
FILE *fin = stdin;
FILE *fout = stdout;
int n , over , elem , i , into;
long long a , b, l , r , sol;
fscanf (fin,"%d%lld%lld",&n,&a,&b);
over = 0;
if ( a > 1000000000000000000LL / b )
over = 1;
elem = 0;
for (i=1;i<=n;i++){
fscanf (fin,"%lld%lld",&l,&r);
if (over){
/// dau resturile l si r
v[++elem] = make_pair( l , 1 ); /// begin
v[++elem] = make_pair( r + 1 , 0 ); /// end
}
else {
if (r - l + 1 >= a * b){ /// sunt toate resturile
v[++elem] = make_pair( 0 , 1 ); /// begin
v[++elem] = make_pair( a * b , 0 ); /// end
}
else {
l = l % (a * b);
r = r % (a * b);
if (l <= r){
v[++elem] = make_pair( l , 1 ); /// begin
v[++elem] = make_pair( r + 1 , 0 ); /// end
}
else { /// se duce l .. ab - 1 0 ... r
v[++elem] = make_pair( l , 1 ); /// begin
v[++elem] = make_pair( a * b , 0 ); /// end
v[++elem] = make_pair( 0 , 1 ); /// begin
v[++elem] = make_pair( r + 1 , 0 ); /// end
}
}
}
}
/// acum eu am un vector de evenimente , vr sa vad reunuiunea
sol = 0;
sort (v + 1 , v + elem + 1);
into = 0;
for ( i = 1 ; i <= elem ; i++ ){
while (i < elem && v[i].first == v[i+1].first){
if (v[i].second == 1)
into++;
else into--;
i++;
}
if (i == elem)
break;
if (v[i].second == 1)
into++;
else into--;
if (into > 0)
sol = sol + v[i+1].first - v[i].first;
}
fprintf (fout,"%lld",sol);
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... |