| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1306112 | exoworldgd | 선물 (IOI25_souvenirs) | C++20 | 13 ms | 860 KiB |
#include <bits/stdc++.h>
#include "souvenirs.h"
#define ll long long
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
using namespace std;
int N,b[105];
ll p[105];
void f(int idx,ll up) {
if(idx>=N||p[idx]^-1)return;
auto[it,ch]=transaction(up-1);
idx=it[0];
for(int t:it)b[t]++;
while(it.size()>1) {
if(p[it.back()]^-1)f(it.back(),(up-1-ch)/it.size()+1);
ch+=p[it.back()],it.pop_back();
}
p[idx]=up-1-ch,f(idx+1,p[idx]);
}
void buy_souvenirs(int n, ll P0) {
N=n;
for(int i=0;i<N;i++)p[i]=-1,b[i]=0;
p[0]=P0,f(1,P0);
for(int i=1;i<N;i++) {
while(b[i]<i) {
auto[it,ch]=transaction(p[i]);
for(int t:it)b[t]++;
}
}
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
