| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1311699 | alexaaa | 선물 (IOI25_souvenirs) | C++20 | 0 ms | 0 KiB |
#include "souvenirs.h"
#include <vector>
#include<utility>
using namespace std;
vector<long long> vec = {20,10};
std::pair<std::vector<int>, long long> transaction(long long M) {
std::vector<int> L;
long long R = M;
for (int i = 0; i < 2; i++) {
if (R >= vec[i]) {
R -= vec[i];
L.push_back(i);
}
}
return {L, R};
}
void buy_souvenirs(int N, long long P0) {
std::pair<std::vector<int>, long long> retn;
long long powers = 1;
while(powers < P0){
retn = transaction(powers);
if(!retn.first.empty()){
break;
}
powers *= 2;
}
int number = powers - retn.second;
for(int i = 0; i < number-1 ; i++){
retn = transaction(number);
}
}
