Submission #1261001

#TimeUsernameProblemLanguageResultExecution timeMemory
1261001robijoySouvenirs (IOI25_souvenirs)C++20
0 / 100
12 ms420 KiB
/*
 *   Starting with the name of almighty ALLAH
 */
#include "souvenirs.h"
#include <bits/stdc++.h>

using namespace std;


// int N = 6;
// vector<long long> P = {10, 8, 7, 5, 3, 1};
// vector<int> Q(N);

// pair<vector<int>, long long> transaction(long long M) {
//   vector<int> L;
//   long long R = M;
//   for (int i = 0; i < N; i++) {
//     if (R >= P[i]) {
//       R -= P[i];
//       Q[i]++;
//       L.push_back(i);
//     }
//   }
//   return {L, R};
// }

void buy_souvenirs(int N, long long P0) {
    vector<long long> left(N),P(N);
    for(long long i = 0; i < N; ++i) left[i] = i;

    P[0] = P0;
    long long ro = 0;
    for (long long i = 1; i < N-1; ++i)
    {
        pair<vector<int>,long long> res = transaction(P[i-1]-1);
        if(res.first.size() == 1) {
            long long ret = res.second;
            P[i] = (P[i-1] - 1 - ret);
            left[P[i]]--;
        } else {
            P[i] = (P[i-1] - 1 - 1);
            left[P[i]]--;
            ro++;
            P[N-1] = 1;
        }
    } 

    for (long long i = 0; i < left.size()-1; ++i)
    {
        long long x = left[i];
        for (long long j = 0; j < x; ++j)
        {
            transaction(P[i]);
        }
    }
    for (long long i = 0; i < ((N-1) - ro); ++i)
    {
        transaction(1);
    }
}

// int main() {
//     buy_souvenirs(6,10);
// }
#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...