Submission #1260051

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

using namespace std;

void buy_souvenirs(int N, long long P0) {
    int PN = max(0LL,P0 - (2*N)); // the least limit of the last sou..

    int RealPN = -1;
    for(int i = PN; i <= P0; ++i) {
        pair<vector<int>, long long> res = transaction(i);
        if(res.first.size() == 1) {
            RealPN = res.second;
            break;
        }
    }
    // RealPN = this is the real value of PN;

    for (int i = 0; i < N-1; ++i)
    {
        pair<vector<int>, long long> res = transaction(RealPN);
    }
    // called it for N-1 times.

    vector<int> P;
    for (int i = RealPN+1; i <= P0; ++i)
    {
        pair<vector<int>, long long> res = transaction(i);
        if(res.first.size() == 1) {
            P.push_back(res.second);
        }
    }

    reverse(P.begin(), P.end());

    for (int i = 0; i < P.size(); ++i)
    {
        int cur = P[i];
        int num = i;
        for (int j = 0; j < num; ++j)
        {
              transaction(cur);
        }
    }
}

#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...