Submission #1306979

#TimeUsernameProblemLanguageResultExecution timeMemory
1306979michael12Souvenirs (IOI25_souvenirs)C++20
25 / 100
12 ms400 KiB
#include "souvenirs.h" #include<bits/stdc++.h> #define ff first #define ss second #define pb push_back #define mp make_pair #define sm pair<vector<int>, long long> using namespace std; void sub3(int n, long long P0){ sm T = transaction(P0 - 1); if(T.ff.size() == 1){ long long p1 = P0 - 1 - T.ss; transaction(p1 - 1); transaction(p1 - 1); } else{ long long sm2 = P0 - 1 - T.ss; transaction(sm2 / 2); } } void buy_souvenirs(int N, long long P0){ long long p = P0; if(N == 2){ transaction(p - 1); return; } else if(N == 3){ sub3(N, P0); return; } else if(P0 == N){ for(int i = N - 1; i >= 1; i--){ for(int j = 1; j <= N - i; j++){ transaction(i); } } return; } else{ vector<long long> dp(N, 0); dp[0] = P0; for(int i = 0; i < N - 1; i++){ sm T = transaction(dp[i] - 1); if(T.ss == 1){ dp[i + 1] = dp[i] + 2; } else{ dp[i + 1] = dp[i] + 1; } } for(int i = 0; i <= N - 1; i++){ for(int j = 0; j <= N; j++){ transaction(dp[i]); } } return; } 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...