제출 #738359

#제출 시각아이디문제언어결과실행 시간메모리
738359Elvin_FritlWiring (IOI17_wiring)C++17
0 / 100
1075 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});
        }
    }
    
    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...