Submission #1310119

#TimeUsernameProblemLanguageResultExecution timeMemory
1310119exoworldgdTreasure (IOI24_treasure)C++20
0 / 100
2 ms732 KiB
#include "treasure.h"
#include <bits/stdc++.h>
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
using namespace std;
using ll=long long;
vector<int>encode(vector<pair<int,int>>P){
    vector<int>ans,y;
    for(auto&e:P)y.push_back(e.second);
    sort(y.begin(),y.end()),sort(P.begin(),P.end());
    map<int,int>mp;
    int c=0,cs=0;
    for(auto&e:y)if(!mp.count(e))mp[e]=c,c++;
    for(auto&e:P)cs+=mp[e.second],ans.push_back(cs),ans.push_back(e.first+1e9),ans.push_back(e.second+2e9);
    return ans;
}
vector<pair<int,int>>decode(vector<int>S){
    vector<int>x,y,a;
    for(auto&e:S){
        if(e>=2e9)y.push_back(e-2e9);
        else if(e>=1e9)x.push_back(e-1e9);
        else a.push_back(e);
    }
    sort(x.begin(),x.end()),sort(y.begin(),y.end());
    int c=0;
    map<int,int>mp,mp2;
    for(auto&e:y){
        if(!mp.count(e))mp[e]=c,c++;
        mp2[c]=e;
    }
    vector<pair<int,int>>ans;
    int n=x.size();
    for(auto&e:x)ans.push_back({e,0});
    sort(a.begin(),a.end()),ans[0].second=mp2[a[0]+1];
    for(int i=1;i<n;i++)ans[i].second=mp2[a[i]-a[i-1]+1];
    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...