Submission #1285942

#TimeUsernameProblemLanguageResultExecution timeMemory
1285942lizi14선물 (IOI25_souvenirs)C++20
22 / 100
13 ms332 KiB

#include "souvenirs.h"
#include <utility>
#include <vector>
#include <bits/stdc++.h>
using namespace std;
void buy_souvenirs(int N, long long P0) {
  	
  	//int ans=P0-1-a;
  	//res=transaction(ans);
    if(N==2){
        transaction(P0-1);
    }
  	else if(N==3){
  	    pair<vector<int>, long long> res = transaction(P0-1);
  	    long long a=res.second;
  	    vector<int> b=res.first;
  	 //   for(auto ab:b){
  	 //       cout<<ab<<" ";
  	 //   }
  	 //   cout<<endl;
  	 //   cout<<a<<endl;
  	    if(b.size()==2 && a==0){
  	        transaction((P0-1)/2);
  	    }
  	    else if(b.size()==2 && a>0){
  	        transaction((P0-1-a)/2);
  	    }
  	    else{
      	    transaction(P0-2-a);
      	    transaction(P0-2-a);
  	        
  	    }
  	    return;
  	}
  	else{
  	    for(int i=1; i<N; i++){
  	        for(int j=0; j<i; j++){
  	            transaction((P0+1)/2);
  	        }
  	        P0=(P0+1)/2;
  	    }
  	    return;
  	}
  	/*
  	else{
  	    int ert=0;
  	    P0--;
    	for(int i=1; i<N; i++){
    	    if(ert>0 && i==N-1){
    	        break;
    	    }
    	    for(int j=0; j<i; j++){
    	        pair<vector<int>, long long> res = transaction(P0);
          	    long long a=res.second;
          	    vector<int> b=res.first;
          	    P0-=a;
          	    if(b.size()==2){
          	        ert++;
          	        P0--;
          	    }
          	 //   cout<<P0<<" "<<ert<<endl;
          	 //   cout<<b.size()<<" "<<a<<endl;
          	 //   for(auto t:b){
          	 //       cout<<t<<" ";
          	 //   }
    	    }
    	    //cout<<endl;
    	    P0--;
    	}
    	if(ert>0){
        	for(int i=ert; i<N-1; i++){
        	    transaction(1);
        	}
    	}
    	return;
  	}
  	//return;
  	*/
}
#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...