# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1254812 | AbdullahIshfaq | 선물 (IOI25_souvenirs) | C++20 | 0 ms | 0 KiB |
#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
#define MOD 1000000007
#define ll long long
void buy_souvenirs(int n, ll p)
{
ll curr = p - 1;
if(n == 3){
auto tmp = transaction(curr);
curr -= tmp.second;
if(tmp.size() == 1){
transaction(curr - 1);
transaction(curr - 1);
return ;
}
curr /= 2;
transaction(curr);
transaction(curr);
return ;
}
vector<ll> pur(n);
for(int i = 1; i < n; i++){
while(pur[i] < i){
auto tmp = transaction(curr);
for(auto j : tmp.first){
pur[j]++;
}
if(tmp.second > 0 or tmp.first.size() != 1){
curr--;
}
}
curr--;
}
}