Submission #1345799

#TimeUsernameProblemLanguageResultExecution timeMemory
1345799orgiloogiiSouvenirs (IOI25_souvenirs)C++20
21 / 100
8 ms408 KiB
#include "souvenirs.h"
#include <utility>
#include <vector>
#include <bits/stdc++.h>
using namespace std;
void buy_souvenirs(int n, long long p) {
	if (n == 3) {
		int curr = p - 1;
        pair<vector<int>, long long> res = transaction(curr);
        if (res.first.size() == 1) {
        	curr -= res.second;
        	curr--;
        	transaction(curr);
        	transaction(curr);
    	}
    	else {
        	curr -= res.second;
	        curr /= 2;
	        transaction(curr);
    	}
		return;
	}

    long long curr = p;
    int ls = 0;
    int cnt[n] = {0};
    for (int i = 1;i < n;i++) {
        curr--;
        pair<vector<int>, long long> res = transaction(curr);
        int change = 0;
        if (res.second == 1) {
        	curr--;
        	cnt[i]++;
        }
        else {
        	if (res.first.size() == 2) {
        		curr--;
        		cnt[i]++;
        		cnt[n - 1]++;
        	}
        	else {
        		cnt[i]++;
        	}
        }
    	while (cnt[i] < i) {
    		cnt[i]++;
    		transaction(curr);
    	}
    }
    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...