Submission #1228308

#TimeUsernameProblemLanguageResultExecution timeMemory
1228308kl0989eTreasure (IOI24_treasure)C++20
100 / 100
223 ms4996 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...