#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... |