Submission #73168

#TimeUsernameProblemLanguageResultExecution timeMemory
73168autumn_eelRoller Coaster Railroad (IOI16_railroad)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;

unordered_map<int,long long int> mp;

#define MAX 500002
int belong[MAX];
int dep[MAX];
inline int root(int b){
	if(belong[b]==-1){
		return b;
	}
	return belong[b]=root(belong[b]);
}
inline void merge(int a,int b){
	a=root(a);
	b=root(b);
	if(a==b)return;
	if(dep[a]>dep[b])swap(a,b);
	dep[b]=max(dep[b],dep[a]+1);
	belong[a]=b;
	return;
}
unordered_map<int,int> idx;
unordered_set<int> ss;
 
long long plan_roller_coaster(std::vector<int> s, std::vector<int> t) {
	memunordered_set(belong,-1,sizeof(belong));
	t.push_back(-1);
	s.push_back(INT_MAX-3);
	for(int i=0;i<s.size();i++){
		mp[s[i]]++;
		mp[t[i]]--;
		idx[s[i]]=0;
		idx[t[i]]=0;
	}
	int ii=-1;
	for(auto &it:idx){
		ii++;
		it.second=ii;
	}
	for(int i=0;i<s.size();i++){
		merge(idx[s[i]],idx[t[i]]);
	}
	long long int sum=0;
	for(auto &it:mp){
		if(sum)merge(idx[it.first],idx[it.first]-1);
		long long int add=sum;
		sum-=it.second;
		it.second-=add;
		it.second+=sum;
		if(sum<0){
			return 111;
		}
	}
	for(int i=0;i<mp.size();i++){
		ss.insert(root(i));
	}
	if(ss.size()>1){
		return 333;
	}
	for(auto it:mp){
		if(it.second!=0){
			return 222;
		}
	}
	return 0;
}

Compilation message (stderr)

railroad.cpp: In function 'long long int plan_roller_coaster(std::vector<int>, std::vector<int>)':
railroad.cpp:28:2: error: 'memunordered_set' was not declared in this scope
  memunordered_set(belong,-1,sizeof(belong));
  ^~~~~~~~~~~~~~~~
railroad.cpp:31:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<s.size();i++){
              ~^~~~~~~~~
railroad.cpp:42:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<s.size();i++){
              ~^~~~~~~~~
railroad.cpp:56:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<mp.size();i++){
              ~^~~~~~~~~~