제출 #1166190

#제출 시각아이디문제언어결과실행 시간메모리
1166190sqrteipiTreasure (IOI24_treasure)C++20
100 / 100
207 ms5420 KiB
#include <bits/stdc++.h> #include "treasure.h" using namespace std; vector<int> encode(vector<pair<int, int>> P) { int n = P.size(), pre = 0; vector<int> ans; vector<pair<int, int>> P2; sort(P.begin(), P.end()); for (int i = 0; i < n; i++) { auto [x, y] = P[i]; ans.push_back(x); ans.push_back(5e8 + 1 + y); P2.push_back({y, i + 1}); } sort(P2.begin(), P2.end()); for (int i = 0; i < n; i++) { auto [y, idx] = P2[i]; pre += idx; ans.push_back(1e9 + 2 + pre); } return ans; } vector<pair<int, int>> decode(vector<int> S) { int n = S.size() / 3; vector<int> xx, yy, idxx; vector<pair<int, int>> ans; for (auto var : S) { if (var <= 5e8) xx.push_back(var); else if (var <= 1e9 + 1) yy.push_back(var - 5e8 - 1); else idxx.push_back(var - 1e9 - 2); } sort(xx.begin(), xx.end()); sort(yy.begin(), yy.end()); sort(idxx.begin(), idxx.end()); for (int i = 0; i < n; i++) { int y = yy[i]; int idx = idxx[i] - (i == 0 ? 0 : idxx[i - 1]); int x = xx[idx - 1]; ans.push_back({x, y}); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...