Submission #1250629

#TimeUsernameProblemLanguageResultExecution timeMemory
1250629thunoproSouvenirs (IOI25_souvenirs)C++20
25 / 100
12 ms420 KiB
#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] - 1 ; } } 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 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...