Submission #738356

#TimeUsernameProblemLanguageResultExecution timeMemory
738356Elvin_FritlWiring (IOI17_wiring)C++17
Compilation error
0 ms0 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; }

Compilation message (stderr)

wiring.cpp: In function 'long long int min_total_length(std::vector<int>, std::vector<int>)':
wiring.cpp:28:41: error: 'std::set<std::pair<int, int> >::iterator' {aka 'std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator'} has no member named 'second'
   28 |         while(s.size()!=0 && *s.begin().second == toto){
      |                                         ^~~~~~
wiring.cpp:29:34: error: 'std::set<std::pair<int, int> >::iterator' {aka 'std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator'} has no member named 'first'
   29 |             s1.insert(*s.begin().first);
      |                                  ^~~~~
wiring.cpp:32:36: error: 'std::set<std::pair<int, int> >::iterator' {aka 'std::_Rb_tree<std::pair<int, int>, std::pair<int, int>, std::_Identity<std::pair<int, int> >, std::less<std::pair<int, int> >, std::allocator<std::pair<int, int> > >::const_iterator'} has no member named 'first'
   32 |         res+=abs(b[i] - *s.begin().first);
      |                                    ^~~~~