Submission #1042947

#TimeUsernameProblemLanguageResultExecution timeMemory
1042947ReLiceRoller Coaster Railroad (IOI16_railroad)C++17
Compilation error
0 ms0 KiB
#include "railroad.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define pb push_back
#define vll vector<ll>
#define fr first
#define bc back()
#define sc second
const ll inf=2e9;
const ll N=4e5+7;
vector<vector<int>> g(N);
int p[N],siz[N];
int anc(ll a){
	return (a==p[a] ? a : p[a]=anc(p[a]));
}
bool uni(ll a,ll b){
	a=anc(a),b=anc(b);
	if(a==b)return false;
	if(siz[a]>siz[b])swap(a,b);
	siz[b]+=siz[a];
	p[a]=b;
	return true;
}
long long plan_roller_coaster(vector<int> s, vector<int> t) {
    ll i;
    ll n=s.size();
    
    //compress;
    set<int> st;
    map<int,ll> pos,mp;
    for(i=0;i<n;i++){
		st.insert(s[i]);
		st.insert(t[i]);
	}
	st.insert(inf);
	ll c=0;
	for(auto i : st){
		pos[i]=c;
		mp[c]=i;
		c++;
	}
	vll val(c);
    for(i=0;i<c;i++){
		val[i]=mp[i];
		p[i]=i;
		siz[i]=1;
	}
    
    vll vs,vt;
    vll pref(c);
    pref[c-1]++;
    pref[0]--;
    for(i=0;i<n;i++){
		vs.pb(pos[s[i]]);
		vt.pb(pos[t[i]]);
		g[vs[i]].pb(vt[i]);
		pref[vs[i]]++;
		pref[vt[i]]--;
	}
	
	ll ans=0;
	
	for(i=0;i<c-1;i++){
		if(i>0)pref[i]+=pref[i-1];
		if(pref[i]>0){
			ans+=C*(val[i+1]-val[i]);
			g[i+1].pb(i);
		}
		if(pref[i]<0){
			g[i].pb(i+1);
		}
	}
	
	uni(0,c-1);
	for(i=0;i<c;i++){
		for(auto j : g[i]){
			uni(i,j);
		}
	}
	
	vector<pair<ll,ll>> edges;
	for(i=1;i<c;i++){
		edges.pb({val[i]-val[i-1],i});
	}
	
	sort(edges.begin(),edges.end());
	
	for(i=0;i<(ll)edges.size();i++){
		if(uni(edges[i].sc,edges[i].sc-1)){
			ans+=edges[i].fr;
		}
	}
	
	return ans;
}

Compilation message (stderr)

railroad.cpp: In function 'long long int plan_roller_coaster(std::vector<int>, std::vector<int>)':
railroad.cpp:67:9: error: 'C' was not declared in this scope
   67 |    ans+=C*(val[i+1]-val[i]);
      |         ^