Submission #252058

# Submission time Handle Problem Language Result Execution time Memory
252058 2020-07-24T04:50:12 Z jeqcho Strange Device (APIO19_strange_device) C++17
10 / 100
616 ms 17148 KB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<pair<int,int>> vpi;

#define FOR(i,a,b) for (int i = (a); i < (b); ++i)
#define F0R(i,a) FOR(i,0,a)
#define ROF(i,a,b) for (int i = (b)-1; i >= (a); --i)
#define R0F(i,a) ROF(i,0,a)
#define trav(a,x) for (auto& a: x)

#define pb push_back
#define rsz resize
#define sz(x) int(x.size())
#define all(x) begin(x), end(x)
#define f first
#define s second

// solved subtask 4 and 5

ll A,B;

ll gcd(ll a, ll b)
{
    // O((log n)^2)
    if (b == 0)
        return a;
    return gcd(b, a % b);
}

int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0);
    int n;
    cin>>n>>A>>B;
    ll l,r;
    ll q = A / gcd(A,B+1);
    ll maxlen = q*B;
    vector<pair<ll,ll>> segments;
    F0R(i,n)
    {
        cin>>l>>r;
        if(r-l+1 >= maxlen)
        {
            FOR(j,i+1,n)cin>>l>>r;
            cout<<maxlen<<endl;
            return 0;
        }
        l %= maxlen;
        r %= maxlen;
        if(r<l)
        {
            segments.pb({0,r});
            segments.pb({l,maxlen-1});
        }
        else segments.pb({l,r});
    }
    sort(all(segments));
    bool init=0;
    ll ldex,rdex;
    ll ans=0;
    pair<ll,ll> seg;
    F0R(i,sz(segments)+1)
    {
        if(i==sz(segments))
        {
            ans += rdex-ldex+1;
            break;
        }
        seg = segments[i];
        if(!init)
        {
            ldex=seg.f;
            rdex=seg.s;
            init=1;
        }
        else if(seg.f==ldex)
        {
            rdex = seg.s;
        }
        else
        {
            // seg.f > ldex
            if(seg.f <= rdex)
            {
                rdex = seg.s;
            }
            else
            {
                ans += rdex-ldex+1;
                ldex=seg.f;
                rdex=seg.s;
            }
        }
    }
    cout<<ans<<endl;
    return 0;
}

Compilation message

strange_device.cpp: In function 'int main()':
strange_device.cpp:70:24: warning: 'rdex' may be used uninitialized in this function [-Wmaybe-uninitialized]
             ans += rdex-ldex+1;
                    ~~~~^~~~~
strange_device.cpp:70:24: warning: 'ldex' may be used uninitialized in this function [-Wmaybe-uninitialized]
# Verdict Execution time Memory Grader output
1 Correct 0 ms 384 KB Output is correct
2 Incorrect 6 ms 768 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 384 KB Output is correct
2 Correct 1 ms 384 KB Output is correct
3 Correct 0 ms 384 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Incorrect 1 ms 256 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 384 KB Output is correct
2 Incorrect 1 ms 384 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 384 KB Output is correct
2 Correct 542 ms 16900 KB Output is correct
3 Correct 498 ms 16852 KB Output is correct
4 Correct 499 ms 17148 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 384 KB Output is correct
2 Correct 542 ms 16900 KB Output is correct
3 Correct 498 ms 16852 KB Output is correct
4 Correct 499 ms 17148 KB Output is correct
5 Correct 0 ms 384 KB Output is correct
6 Correct 503 ms 16988 KB Output is correct
7 Correct 510 ms 16852 KB Output is correct
8 Correct 510 ms 16988 KB Output is correct
9 Correct 547 ms 16860 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 384 KB Output is correct
2 Correct 542 ms 16900 KB Output is correct
3 Correct 498 ms 16852 KB Output is correct
4 Correct 499 ms 17148 KB Output is correct
5 Correct 1 ms 384 KB Output is correct
6 Correct 51 ms 2676 KB Output is correct
7 Correct 55 ms 2544 KB Output is correct
8 Correct 51 ms 2552 KB Output is correct
9 Correct 51 ms 2544 KB Output is correct
10 Correct 52 ms 2544 KB Output is correct
11 Correct 51 ms 2544 KB Output is correct
12 Correct 50 ms 2552 KB Output is correct
13 Correct 51 ms 2552 KB Output is correct
14 Correct 51 ms 2544 KB Output is correct
15 Incorrect 58 ms 2544 KB Output isn't correct
16 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 384 KB Output is correct
2 Correct 54 ms 2544 KB Output is correct
3 Correct 59 ms 2676 KB Output is correct
4 Correct 616 ms 16852 KB Output is correct
5 Correct 56 ms 2544 KB Output is correct
6 Correct 54 ms 2552 KB Output is correct
7 Correct 52 ms 2544 KB Output is correct
8 Correct 55 ms 2544 KB Output is correct
9 Correct 53 ms 2544 KB Output is correct
10 Correct 54 ms 2552 KB Output is correct
11 Correct 52 ms 2544 KB Output is correct
12 Correct 47 ms 2552 KB Output is correct
13 Correct 52 ms 2544 KB Output is correct
14 Incorrect 541 ms 16980 KB Output isn't correct
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 384 KB Output is correct
2 Incorrect 6 ms 768 KB Output isn't correct
3 Halted 0 ms 0 KB -