Submission #1252828

#TimeUsernameProblemLanguageResultExecution timeMemory
1252828nickolasarapidisSouvenirs (IOI25_souvenirs)C++20
39 / 100
12 ms412 KiB
#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;

#define F first
#define S second

void buy_souvenirs(int N, long long P0){
    pair<vector<int>, long long> a;
    bool b = false;
    if(N == 2){
        a = transaction(P0 - 1);
        return;
    }
    if(N == 3){
        a = transaction(P0 - 1);
        if(a.F.size() == 1){
            long long x = P0 - 1 - a.S;
            a = transaction(x - 1);
            a = transaction(x - 1);
        }
        else{
            long long x = P0 - 1 - a.S;
            a = transaction(x/2);
        }
        return;
    }
    for(int i = 1; i < N; i++){
        if(i == N - 1 and b == true){
            a = transaction(1);
            continue;
        }
        a = transaction(P0 - 1);
        if(a.S == 1) P0 -= 2;
        else{
            if(a.F.size() == 1){
                P0--;
            }
            else{
                b = true;
                P0 -= 2;
            }
        }
        for(int j = 1; j < i; j++){
            a = transaction(P0);
        }
    }
}
#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...