Submission #1256638

#TimeUsernameProblemLanguageResultExecution timeMemory
1256638medmdg선물 (IOI25_souvenirs)C++20
39 / 100
13 ms412 KiB
#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;


void sub1(int N, long long P0) {
  pair<vector<int>, long long> res = transaction(P0-1);
}
void sub2(int N, ll P0){
  for(int i=N-1;i>0;i--){
    for(int j=N;j>i;j--){
      transaction(i);
    }
  }
}
void sub3(int N,ll P0){
  vector<ll> rem(N);
  for(int i=0;i<N;i++){
    rem[i]=i;
  }
  ll cost=P0-1;
  for(int i=1;i<N;i++){
    pair<vector<int>, long long> res =transaction(cost);
    for(auto x:res.first)rem[x]--;
    if(res.first.size()>1||res.second)cost--;
    while(rem[i]){
      res=transaction(cost);
      for(auto x:res.first)rem[x]--;
    }
    cost--;
  }
}
void sub4(int N, long long P0) {
  pair<vector<int>, long long> res = transaction(P0-1);
  ll cost=P0-1-res.second;
  //cout<<"#"<<cost<<endl;
  if(res.first.size()>1)
  transaction(cost/2);
  else{
  transaction(cost-1);
  transaction(cost-1);
  }
}
void buy_souvenirs(int N, long long P0) {
  if(N==3)sub4(N,P0);
  else if(N==2) sub1(N,P0);
  else sub3(N,P0);
  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...