#include "treasure.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define fi first
#define se second
#define pb push_back
#define vi vector<int>
#define vl vector<ll>
#define pi pair<int, int>
#define pl pair<ll,ll>
#define all(x) (x).begin(),(x).end()
vi encode(vector<pi> poi) {
vi ret;
vi y;
sort(all(poi));
for (int i=0; i<poi.size(); i++) {
ret.pb(1e9+2*poi[i].fi-1);
ret.pb(1e9+2*poi[i].se);
y.pb(poi[i].se);
}
sort(all(y));
int sum=0;
for (int i=0; i<poi.size(); i++) {
sum+=lower_bound(all(y),poi[i].se)-y.begin();
ret.pb(sum);
}
return ret;
}
vector<pi> decode(vi nums) {
vi x,y,inds;
vector<pi> ret;
for (int i=0; i<nums.size(); i++) {
if (nums[i]>=1e9-1 && nums[i]%2) {
x.pb((nums[i]-1e9+1)/2);
}
else if (nums[i]>=1e9-1) {
y.pb((nums[i]-1e9)/2);
}
else {
inds.pb(nums[i]);
}
}
sort(all(x));
sort(all(y));
sort(all(inds));
for (int i=nums.size()/3-1; i>=0; i--) {
if (i>0) {
ret.pb({x[i],y[inds[i]-inds[i-1]]});
}
else {
ret.pb({x[i],y[inds[i]]});
}
}
return ret;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |