Submission #1285757

#TimeUsernameProblemLanguageResultExecution timeMemory
1285757eri16Souvenirs (IOI25_souvenirs)C++20
39 / 100
13 ms400 KiB
#include <bits/stdc++.h>
#include "souvenirs.h"

using namespace std;

pair<vector<int>, long long> transaction(long long M);

void buy_souvenirs(int n, long long P0) {

    pair<vector<int>, long long> vp;

    if (n==2){
        transaction(P0-1);
    }
    else if (n==3){
        vp=transaction(P0-1);

        if (vp.first.size()==1){
         
            long long tt=vp.second;
            
            long long p2=P0-1-tt;
            
            transaction(p2-1);            
            
            transaction(p2-1);            
        }
        
        else{
            
            long long tt=vp.second;
            
            long long p2=(P0-1-tt)/2;
            
            transaction(p2);            
        }
    }
    else{
        long long sm=n-2;
        
        for (int i=1; i<n; i++){

            long long cnt=i-1;
            
            if (i==n-1){
                cnt=sm;
            }
            
            vp=transaction(P0-1);
            
            long long tt=vp.second;            
                
            if (vp.first.size()==2){sm--;tt++;}
            
            long long pk=P0-1-tt;
                
            P0=pk;
                
            for (int j=0; j<cnt; j++){
                transaction(pk);    
            }
        }
    }
} 
#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...