Submission #147917

#TimeUsernameProblemLanguageResultExecution timeMemory
147917nekiWiring (IOI17_wiring)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include "wiring.h" #define maxn 100100 #define loop(i, a, b) for(int i=a;i<b;i++) typedef long long ll; using namespace std; bool cmp(ll a, ll b) { return (abs(a)<abs(b))? 1:0;} ll min(ll a, ll b) { return (a<b)? a:b;} long long min_total_length (vector <int> red, vector <int> blue) { pair<ll, ll> com[maxn*2];n=red.size()+blue.size(); loop(i, 0, red.size()) com[i]({red[i], 1}); loop(i, 0, blue.size()) com[i+red.size()]({blue[i], -1}); sort(com, com+n, cmp);sort(red.begin(), red.end());sort(blue.begin(), blue.end()); ll dp[maxn*2], nek[maxn*2], ind[maxn*2], bal=maxn;loop(i, 0, 2*maxn) nek[i]=LLONG_MAX, dif=0; loop(i, 0, n){ ll ma=LLONG_MAX; bal+=com[i].second;dif+=com[i].first * com[i].second; if(com[i].second==1){ auto cl=lower_bound(blue.begin(), blue.end(), com[i].first); if(cl!=blue.end()) ma=min(ma, (*cl)-com[i].first); if(cl!=blue.begin()) ma=min(ma, com[i].first-(*prev(cl))); } else{ auto cl=lower_bound(red.begin(), red.end(), com[i].first); if(cl!=red.end()) ma=min(ma, (*cl)-com[i].first); if(cl!=red.begin()) ma=min(ma, com[i].first-(*prev(cl))); } dp[i]=min(dp[i-1]+ma, abs(dif-nek[bal])+dp[ind[bal]]); nek[bal]=dif;ind[bal]=i; } return dp[n-1]; }

Compilation message (stderr)

wiring.cpp: In function 'long long int min_total_length(std::vector<int>, std::vector<int>)':
wiring.cpp:13:28: error: 'n' was not declared in this scope
   pair<ll, ll> com[maxn*2];n=red.size()+blue.size();
                            ^
wiring.cpp:13:28: note: suggested alternative: 'yn'
   pair<ll, ll> com[maxn*2];n=red.size()+blue.size();
                            ^
                            yn
wiring.cpp:4:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define loop(i, a, b) for(int i=a;i<b;i++)
wiring.cpp:14:8:
   loop(i, 0, red.size()) com[i]({red[i], 1});
        ~~~~~~~~~~~~~~~~             
wiring.cpp:14:3: note: in expansion of macro 'loop'
   loop(i, 0, red.size()) com[i]({red[i], 1});
   ^~~~
wiring.cpp:14:44: error: no match for call to '(std::pair<long long int, long long int>) (<brace-enclosed initializer list>)'
   loop(i, 0, red.size()) com[i]({red[i], 1});
                                            ^
wiring.cpp:4:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define loop(i, a, b) for(int i=a;i<b;i++)
wiring.cpp:15:8:
   loop(i, 0, blue.size()) com[i+red.size()]({blue[i], -1});
        ~~~~~~~~~~~~~~~~~            
wiring.cpp:15:3: note: in expansion of macro 'loop'
   loop(i, 0, blue.size()) com[i+red.size()]({blue[i], -1});
   ^~~~
wiring.cpp:15:58: error: no match for call to '(std::pair<long long int, long long int>) (<brace-enclosed initializer list>)'
   loop(i, 0, blue.size()) com[i+red.size()]({blue[i], -1});
                                                          ^
wiring.cpp:17:90: error: 'dif' was not declared in this scope
   ll dp[maxn*2], nek[maxn*2], ind[maxn*2], bal=maxn;loop(i, 0, 2*maxn) nek[i]=LLONG_MAX, dif=0;
                                                                                          ^~~
wiring.cpp:17:90: note: suggested alternative: 'div'
   ll dp[maxn*2], nek[maxn*2], ind[maxn*2], bal=maxn;loop(i, 0, 2*maxn) nek[i]=LLONG_MAX, dif=0;
                                                                                          ^~~
                                                                                          div
wiring.cpp:20:24: error: 'dif' was not declared in this scope
     bal+=com[i].second;dif+=com[i].first * com[i].second;
                        ^~~
wiring.cpp:20:24: note: suggested alternative: 'div'
     bal+=com[i].second;dif+=com[i].first * com[i].second;
                        ^~~
                        div