Submission #1341042

#TimeUsernameProblemLanguageResultExecution timeMemory
1341042nathlol2선물 (IOI25_souvenirs)C++20
39 / 100
12 ms412 KiB
#include "souvenirs.h"
#include <bits/stdc++.h>
#define ll long long
using namespace std;

void buy_souvenirs(int n, ll p0){
  ll p[n], cnt[n]; p[0] = p0;
  memset(cnt, 0, sizeof cnt);
  if(n == 3){
    auto res = transaction(p[0] - 1);
    if(res.first.size() == 2){
      transaction((p[0] - res.second - 1) / 2);
    }else{
      p[1] = p[0] - 1 - res.second;
      transaction(p[1] - 1); transaction(p[1] - 1);
    }
    return;
  }
  for(int i = 1;i<n;i++){
    auto res = transaction(p[i - 1] - 1);
    for(auto x : res.first) cnt[x]++;
    if(res.first.size() == 2){
      p[i] = p[i - 1] - 2;
    }else{
      if(res.second == 1){
        p[i] = p[i - 1] - 2;
      }else{
        p[i] = p[i - 1] - 1;
      }
    }
  }
  for(int i = 1;i<n;i++){
    for(int j = cnt[i];j<i;j++) auto res = transaction(p[i]);
  }
}
#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...