제출 #1345756

#제출 시각아이디문제언어결과실행 시간메모리
1345756kawhiet선물 (IOI25_souvenirs)C++20
4 / 100
8 ms412 KiB
#include <bits/stdc++.h>
#include "souvenirs.h"
using namespace std;

void buy_souvenirs(int n, long long p0) {
  long long prv = p0;
  auto [v, rem] = transaction(p0 - 1);
  vector<int> cnt(n);
  iota(cnt.begin(), cnt.end(), 0);
  for (auto j : v) {
    cnt[j]--;
  }
  if (v.size() == 2) {
    prv -= 2;
    for (int i = 2; i < n; i++ ){
      auto [v, r] = transaction(prv - 1);
      if (v.size() == 2) {
        prv -= 2;
      } else {
        prv--;
      }
      for (auto j : v) {
        cnt[j]--;
      }
      while (cnt[i]--) {
        transaction(prv);
      }
    }
  } else {
    prv -= 2;
    for (int i = 2; i < n; i++) {
      auto [v, r] = transaction(prv - 1);
      if (r == 1) {
        prv -= 2;
      } else {
        prv--;
      }
      for (auto j : v) {
        cnt[j]--;
      }
      while (cnt[i]--) {
        transaction(prv);
      }
    }
  }
  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...