Submission #738360

#TimeUsernameProblemLanguageResultExecution timeMemory
738360Elvin_FritlWiring (IOI17_wiring)C++17
0 / 100
1076 ms212 KiB
#include <bits/stdc++.h> using namespace std; #include "wiring.h" long long min_total_length(vector<int> r, vector<int> b){ set<pair<int,int>>s; vector<int>chek((int)b.size()*2 +1,0); for(int i=0;i<(int)r.size();i++){ b[r[i]]=1; } int j=0,n=(int)b.size()*2; for(int i=0;i<=n;i++){ if(b[j] > i){ s.insert({i,chek[i]}); } else if(b[j] <= i){ while(b[j] <= i && j<n){ j++; } } } long long res=0; for(int i=0;i<(int)b.size();i++){ int toto=chek[b[i]]; set<int>s1; while(s.size()!=0 && s.begin()->second == toto){ s1.insert(s.begin()->first); s.erase(s.begin()); } res+=abs(b[i] - s.begin()->first); s.erase(s.begin()); while(s1.size()!=0){ s.insert({*s1.begin(),toto}); s1.erase(s1.begin()); } } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...