#include "souvenirs.h"
#include <utility>
#include <vector>
#include <bits/stdc++.h>
#define ll long long
using namespace std ;
#define re exit (0);
#define maxn 1009
typedef pair<vector<int>,ll> Data ;
int cnt_buy [maxn] ;
ll p [maxn] ;
void buy_souvenirs(int N, long long P0) {
Data res ;
if ( N == 2 )
{
res = transaction (P0-1) ;
return ;
}
if ( N == 3 )
{
res = transaction (P0-1) ;
if ( res.first.size () == 1 )
{
ll cost = res.second ;
res = transaction ((P0-2-cost)) ;
res = transaction ((P0-2-cost)) ;
return ;
}
else
{
ll cost = res.second ;
res = transaction ((P0-1-cost)/2) ;
return ;
}
}
p [0] = P0 ;
for ( int i = 1 ; i < N ; i ++ )
{
res = transaction (p[i-1]-1) ;
for ( auto x : res.first ) cnt_buy [x] ++ ;
if ( res.first.size () == 1 )
{
p [i] = p [i-1] - 1 - res.second ;
}
else
{
p [i] = p [i-1] - 2 ;
}
}
for ( int i = 1 ; i < N ; i ++ )
{
if ( cnt_buy [i] < i )
{
for ( int j = cnt_buy [i] ; j < i ; j ++ ) res = transaction (p[i]) ;
}
}
return ;
}
# | 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... |