Submission #1350253

#TimeUsernameProblemLanguageResultExecution timeMemory
1350253kl0989eWiring (IOI17_wiring)C++20
Compilation error
0 ms0 KiB
#include "wiring.h"
#include <bits/stdc++.h>
using namespace std;

#define ll long long
#define pi pair<int, int>
#define pl pair<ll, ll>
#define vi vector<int>
#define vl vector<ll>
#define fi first
#define se second
#define pb push_back
#define all(x) (x).begin(),(x).end()

#include "grader.cpp"

ll min_total_length(vi r, vi b) {
	vector<pl> k;
	for (int i=0; i<r.size(); i++) {
		k.pb({r[i],0});
	}
	for (int i=0; i<b.size(); i++) {
		k.pb({b[i],1});
	}
	sort(all(k));
	int n=k.size();
	vl dp(n+1,1e15);
	vl sum(n+1,0);
	dp[0]=0;
	int j=-1;
	for (int i=0; i<n; i++) {
		sum[i+1]=sum[i]+k[i].fi;
		if (j==-1 && k[i].se!=k[0].se) {
			j=i;
		}
	}
	dp[j+1]=k[j].fi*j-sum[j];
	int lst=0,fst=j;
	for (int i=j+1; i<n; i++) {
		if (k[i].se!=k[i-1].se) {
			fst=i;
			lst=i-1;
		}
		dp[i+1]=min(dp[lst],dp[lst+1])+sum[i+1]-sum[fst]-k[fst].fi*(i+1-fst)+k[fst-1].fi*(fst-lst)-sum[fst]+sum[lst]+(k[fst].fi-k[fst-1].fi)*max(i+1-fst,fst-lst);
		while (lst>0 && k[lst-1].se==k[lst].se) {
			lst--;
			if (min(dp[lst],dp[lst+1])+sum[i+1]-sum[fst]-k[fst].fi*(i+1-fst)+k[fst-1].fi*(fst-lst)-sum[fst]+sum[lst]+(k[fst].fi-k[fst-1].fi)*max(i+1-fst,fst-lst)<=dp[i+1]) {
				dp[i+1]=min(dp[lst],dp[lst+1])+sum[i+1]-sum[fst]-k[fst].fi*(i+1-fst)+k[fst-1].fi*(fst-lst)-sum[fst]+sum[lst]+(k[fst].fi-k[fst-1].fi)*max(i+1-fst,fst-lst);
			}
			else {
				lst++;
				break;
			}
		}
	}
	return dp[n];
}

Compilation message (stderr)

/usr/bin/ld: /tmp/ccqiMkUO.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccAqIfaB.o:wiring.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status