Submission #1256251

#TimeUsernameProblemLanguageResultExecution timeMemory
1256251SamurajSouvenirs (IOI25_souvenirs)C++20
7 / 100
12 ms412 KiB
#include "souvenirs.h" #include <bits/stdc++.h> using namespace std; #define st first #define nd second #define pb push_back #define rep(i,a,b) for(int i = a; i <= b; i++) #define irep(i,a,b) for(int i = a; i >= b; i--) typedef long long ll; typedef long double ld; //typedef __int128 int128; typedef vector<int> vi; typedef pair<int,int> pi; typedef pair<double,double> pd; typedef pair<ll,ll> pl; void buy_souvenirs(int n, ll p0) { if(n == 2){ transaction(p0-1); return; } if(n == 3){ pair<vi,ll> res = transaction(p0-1); if(res.st.size() == 1){ ll x = (p0-res.nd)/2; transaction(x); transaction(x); } else{ ll x = (p0-res.nd+1)/2-1; //sufit na 2 transaction(x); } return; } //teraz algos gdzie max 2 itemy! int akt_i = 0; int next_i = 0; ll val = p0-1; rep(i,1,n-1){ pair<vi,ll> res; while(akt_i < i){ res = transaction(val); akt_i++; if(res.st.size() == 2) next_i++; } if(res.st.size() == 1) val = val-res.nd-1; else val = (val-res.nd+1)/2-1; akt_i = next_i; next_i = 0; } }
#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...