제출 #1256636

#제출 시각아이디문제언어결과실행 시간메모리
1256636medmdg선물 (IOI25_souvenirs)C++20
22 / 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]){
      transaction(cost);
    }
    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...