Submission #1322846

#TimeUsernameProblemLanguageResultExecution timeMemory
1322846yessimkhanMP3 Player (CEOI10_mp3player)C++20
30 / 100
200 ms1300 KiB
#include <bits/stdc++.h>
// solved by bekagg
#define int long long
#define ent '\n'
#define pb push_back
#define all(x) x.begin(),x.end()
#define PRaim_bek_abi ios_base::sync_with_stdio(0);cin.tie(0);

using namespace std;

const int N = 1e5+5;
const int MOD = 1e9+7;

int n , m , k , a[N] , v = 0;
char c[N];

int check(int x){
    int l = 0 , r = m , p = -1;
    while(l <= r){
        int md = (l + r) / 2;
        int cnt = md;

        for (int i = 2; i <= n; i++){
            if (a[i] - a[i - 1] > x) continue;
            if (c[i] == '+'){
                cnt++;
                cnt = min(cnt , m);
            }
            else {
                cnt--;
                cnt = max(cnt , 0ll);
            }
        }

        if (cnt == k){
            p = md;
        }

        if (cnt <= k){
            l = md + 1;
        }

        else r = md - 1;
    }

    v = p;

    return v;
}

void arkanefury228(){
    cin >> n >> m >> k;

    for (int i = 1; i <= n; i++){
        cin >> c[i] >> a[i];
    }

    int l = 0 , r = 2e9 , t = 0 , v1 = 0;
    while(l <= r){
        int md = (l + r) / 2;

        if (check(md) != -1){
            t = md;
            v1 = v;
            l = md + 1;
        }
        else r = md - 1;
    }

    if (t == 2e9){
        cout << "infinity";
        return;
    }

    cout << t << ' ' << v1;
}

signed main(){

    PRaim_bek_abi

    int t=1;
    //cin>>t;
    for (int respagold = 1; respagold <= t; respagold++) arkanefury228();
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...