Submission #252453

#TimeUsernameProblemLanguageResultExecution timeMemory
252453BadrangiikhStrange Device (APIO19_strange_device)C++14
10 / 100
2250 ms32604 KiB
#include<bits/stdc++.h>
#include <deque> 
#include <cmath>
using namespace std;
 
#define ll long long 
 
/*freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);*/
 
long long x , y , z , i , j , n , m , k , s1 , s2 , s3 , s4 , s5 , s6 , mod , l , r , t , maxx , minn , sx , so , sum , mid , ans , puk , par , chi , sz , choc1 , choc2 , len , depth ;
double u , v , w , x1 , x2 , x3 , x4 , z1 , z2 , z3 , h , huh ;
string s ;
string q ;
string p ;
string sq [ 1045 ] ;
char ch ;
char cha ;
vector < long long > vc ;
vector < long long > cv ;
vector < long long > vv ;
vector < long long > cc ;
long long dp [ 200045 ] [ 6 ] ;
long long tmp [ 300045 ] ;
pair < long long , long long > aa [ 300045 ] ;
long long a [ 300045 ] ;
long long b [ 200045 ] ;
long long c [ 200045 ] ;
map < long long , long long > mp ;

int main() {
    cin >> n >> x >> y ;
    z = __gcd ( x , y + 1 ) ;
    k = ( x / z ) * y ;
    x = 0 ;
    for ( i = 1 ; i <= n ; i ++ ) {
        cin >> l >> r ;
        if ( r - l + 1 >= k ) {
            x ++ ;
            aa [ x ] . first = 0 ;
            aa [ x ] . second = k - 1 ;
        }
        l %= k ;
        r %= k ;
        if ( l <= r ) {
            x ++ ;
            aa [ x ] . first = l ;
            aa [ x ] . second = r ;
        }
        else {
            x ++ ;
            aa [ x ] . first = l ;
            aa [ x ] . second = k - 1 ;
            x ++ ;
            aa [ x ] . first = 0 ;
            aa [ x ] . second = r ;
        }
    }
    sort ( aa + 1 , aa + x + 1 ) ;
    r = aa [ 1 ] . second ;
    ans = k - aa [ 1 ] . first ; 
    for ( i = 2 ; i <= x ; i ++ ) {
        if ( aa [ i ] . first > r + 1 ) {
            ans -= ( aa [ i ] . first - r - 1 ) ;
        }
        r = aa [ i ] . second ;
    }
    ans -= ( k - 1 - aa [ x ] . second ) ;
    printf ( "%lld" , 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...