#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |