| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1359640 | raineyj | Souvenirs (IOI25_souvenirs) | C++20 | 9 ms | 412 KiB |
#include "souvenirs.h"
#include <bits/stdc++.h>
using namespace std;
void buy_souvenirs(int N, long long P0) {
if(N==2) transaction(P0-1);
else if(N==3)
{
pair<vector<int>, long long> res=transaction(P0-1);
if(res.first.size()==1)
{
transaction(P0-1-res.second-1);
transaction(P0-1-res.second-1);
}
else
{
long long c=P0-1-res.second;
res=transaction(c/2);
}
}
else if(P0==N)
{
for(int i=1; i<N; i++)
{
for(int j=0; j<i; j++) transaction(N-i);
}
}
else
{
vector<int> sn(N);
vector<long long> price(N, -1);
for(int i=1; i<N; i++) sn[i]=i;
pair<vector<int>, long long> res=transaction(P0-1);
if(res.first.size()==1) price[1]=P0-1-res.second;
else
{
price[1]=P0-2;
sn[res.first[1]]-=1;
price[res.first[1]]==1;
}
for(int i=2; i<N; i++)
{
while(sn[i]>0)
{
if(price[i]==-1)
{
pair<vector<int>, long long> res=transaction(price[i-1]-1);
if(res.first.size()==1) price[i]=price[i-1]-1-res.second;
else
{
price[i]=price[i-1]-2;
sn[res.first[1]]-=1;
price[res.first[1]]==1;
}
}
else transaction(price[i]);
sn[i]-=1;
}
}
}
}| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Result | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
