Submission #1286100

#TimeUsernameProblemLanguageResultExecution timeMemory
1286100lukasuliashvili선물 (IOI25_souvenirs)C++20
39 / 100
14 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...