제출 #1245161

#제출 시각아이디문제언어결과실행 시간메모리
1245161thinknoexitTreasure (IOI24_treasure)C++20
100 / 100
224 ms4780 KiB
#include "treasure.h" #include<bits/stdc++.h> using namespace std; using ll = long long; vector<int> encode(vector<pair<int, int>> P) { // send all possible x, y vector<int> Y; vector<int> res; for (auto& [x, y] : P) { res.push_back(x); res.push_back(y + 5e8 + 1); Y.push_back(y); } sort(Y.begin(), Y.end()); sort(P.begin(), P.end()); int sum = 1e9 + 2; for (int i = 0;i < (int)P.size();i++) { int idx = lower_bound(Y.begin(), Y.end(), P[i].second) - Y.begin(); res.push_back(sum + idx); sum += idx; } return res; } vector<pair<int, int>> decode(vector<int> S) { vector<int> X; vector<int> Y; vector<int> pos; sort(S.begin(), S.end()); int sum = 1e9 + 2; for (auto& x : S) { if (x <= 5e8) X.push_back(x); else if (x <= 1e9 + 1) Y.push_back(x - 5e8 - 1); else { pos.push_back(x - sum); sum = x; } } int n = pos.size(); vector<pair<int, int>> ans; for (int i = 0;i < n;i++) { ans.push_back(pair<int, int>(X[i], Y[pos[i]])); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...