Submission #1287957

#TimeUsernameProblemLanguageResultExecution timeMemory
1287957aleksandreSouvenirs (IOI25_souvenirs)C++20
25 / 100
12 ms400 KiB
#include "souvenirs.h"
#include <utility>
#include <vector>
#include <iostream>
using namespace std;
void buy_souvenirs(int N, long long P0) {
	if (N==2) {
		transaction(P0-1);
		return;
	} else
	if (N==3) {
		int k = 0;
		pair <vector<int>, long long> m = transaction(P0-1);
		if (int(m.first.size()) == 2) {
			k = 1;
		}
		if (k == 0) {
			transaction(P0-1-m.second-1);
			transaction(P0-1-m.second-1);
		} else {
			transaction((P0-1-m.second)/2);
		}
		return;
	} else 
	if (P0==N) {
		for (int i = 1;  i <= N-1; i++) {
    		for (int j = 1; j <= i; j++) {
    			transaction(N-i);
			}
		}
	} else {
		int k = 0, P = P0-1;
		pair <vector<int>, long long> m;
		for (int i = 1; i < N-1; i++) {
			for (int j = 1; j <= i; j++) {
				m = transaction(P);
				if(m.first.size() == 2) {
					k++;
					P--;
				}
				if (m.second > 0) {
					P--;
				}
			}
			P--;
		}
		for (int i = 1+k; i <= N-1; i++) {
			m = transaction(P);
		}
		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...