제출 #1256768

#제출 시각아이디문제언어결과실행 시간메모리
1256768mkkkkkkkk선물 (IOI25_souvenirs)C++20
22 / 100
12 ms412 KiB
#include "souvenirs.h"
#include <utility>
#include <vector>
#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> par=transaction(P0-1);
        if(par.first.size()==2)
        transaction((P0-1-par.second)/2);
        else
        {
            int br=P0-1-par.second;
            transaction(P0-1-par.second-1);
            transaction(P0-1-par.second-1);
        }
    }
    else
    {
        int arr[N]={},cnt[N]={};
        arr[0]=P0;

        int br=P0;
        for(int i=1;i<N;i++)
        {
            pair<vector<int>, long long> par=transaction(br-1);
            if(par.second==1 || par.first.size()==2)
            {
                arr[i]=arr[i-1]-2;
            }
            else
            {
                arr[i]=arr[i-1]-1;
            }
            for(auto it : par.first)
            {
                cnt[it]++;
            }
        }
        for(int i=0;i<N;i++)
        {
            for(int j=cnt[i];j<i;j++)
            {
                transaction(arr[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...