Submission #531377

#TimeUsernameProblemLanguageResultExecution timeMemory
531377JokerFavWiring (IOI17_wiring)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include <algorithm> using namespace std; #define FOR(i, a, b) for(int i = a; i <= b; ++i) #define FOD(i, a, b) for(int i = a; i >= b; --i) #define fi first #define se second #define pb push_back #define eb emplace_back #define ll long long #define ld long double #define nmax 400007 void faster() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); } pair < ll , ll > a[nmax]; int n, m; ll re[nmax], bl[nmax]; ll sa[nmax], sb[nmax]; int last[nmax], vitri[nmax]; ll dp[nmax]; int main() { faster(); //freopen("PointRB.inp","r",stdin); //freopen("PointRB.out","w",stdout); cin >> n >> m; FOR(i, 1, n) { cin >> re[i]; a[i] = {re[i], 0}; } FOR(i, 1, m) { cin >> bl[i]; a[n + i] = {bl[i], 1}; } sort(a + 1,a + 1 + n + m); sort(re + 1, re + 1 + n); sort(bl + 1, bl + 1 + m); int dem = n + m; FOR(i, 0, 2 * (n + m + 1)) last[i] = vitri[i] = -1; last[n + m] = 0; FOR(i, 1, n + m) { sa[i] = sa[i - 1] + (a[i].se == 0) * a[i].fi; sb[i] = sb[i - 1] + (a[i].se == 1) * a[i].fi; dem += (a[i].se == 0); dem -= (a[i].se == 1); if(last[dem] >= 0) vitri[i] = last[dem]; last[dem] = i; } dp[0] = 0; FOR(i, 1, n + m) { ll val = 1e10; if(a[i].se == 0) { int id = lower_bound(bl + 1, bl + 1 + m, a[i].fi) - bl; if(id != m + 1) val = min(val, bl[id] - a[i].fi); if(id != 1) val = min(val, a[i].fi - bl[id - 1]); } else { int id = lower_bound(re + 1,re + 1 + n, a[i].fi) - re; if(id != n + 1) val = min(val, re[id] - a[i].fi); if(id != 1) val = min(val, a[i].fi - re[id - 1]); } dp[i] = dp[i - 1] + val; if(vitri[i] != -1) dp[i] = min(dp[i], abs(sa[i] - sa[vitri[i]] - sb[i] + sb[vitri[i]]) + dp[vitri[i]]); } cout << dp[n + m]; return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/cclRqhw0.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cczh0z91.o:wiring.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/cclRqhw0.o: in function `main':
grader.cpp:(.text.startup+0x23a): undefined reference to `min_total_length(std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status