제출 #73165

#제출 시각아이디문제언어결과실행 시간메모리
73165autumn_eelRoller Coaster Railroad (IOI16_railroad)C++14
0 / 100
236 ms13352 KiB
#include <bits/stdc++.h>
#define rep(i,n)for(int i=0;i<(n);i++)
using namespace std;
typedef long long ll;

int par[600000],rnk[600000];
int find(int x){
	if(par[x]==-1)return x;
	return par[x]=find(par[x]);
}
void unite(int x,int y){
	x=find(x);y=find(y);
	if(x==y)return;
	if(rnk[x]<rnk[y]){
		par[x]=y;
	}
	else{
		par[y]=x;
		if(rnk[x]==rnk[y])rnk[x]++;
	}
}
ll mp[600000];

ll plan_roller_coaster(vector<int>s,vector<int>t){
	memset(par,-1,sizeof(par));
	t.push_back(-1);s.push_back(INT_MAX-3);
	vector<int>v;
	rep(i,s.size()){
		v.push_back(s[i]);v.push_back(t[i]);
	}
	sort(v.begin(),v.end());
	v.erase(unique(v.begin(),v.end()),v.end());
	rep(i,s.size()){
		s[i]=lower_bound(v.begin(),v.end(),s[i])-v.begin();
		t[i]=lower_bound(v.begin(),v.end(),t[i])-v.begin();
		mp[s[i]]++;mp[t[i]]++;
		unite(s[i],t[i]);
	}
	ll sum=0;
	rep(i,v.size()){
		if(sum)unite(i,i-1);
		ll add=sum;
		sum-=mp[i];
		mp[i]-=add;
		mp[i]+=sum;
		if(sum<0){
			return 111;
		}
	}
	set<int>se;
	rep(i,v.size()){
		se.insert(find(i));
	}
	if(se.size()>1){
		return 333;
	}
	rep(i,v.size()){
		if(mp[i]!=0){
			return 222;
		}
	}
	return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

railroad.cpp: In function 'll plan_roller_coaster(std::vector<int>, std::vector<int>)':
railroad.cpp:2:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define rep(i,n)for(int i=0;i<(n);i++)
                              ^
railroad.cpp:28:2: note: in expansion of macro 'rep'
  rep(i,s.size()){
  ^~~
railroad.cpp:2:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define rep(i,n)for(int i=0;i<(n);i++)
                              ^
railroad.cpp:33:2: note: in expansion of macro 'rep'
  rep(i,s.size()){
  ^~~
railroad.cpp:2:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define rep(i,n)for(int i=0;i<(n);i++)
                              ^
railroad.cpp:40:2: note: in expansion of macro 'rep'
  rep(i,v.size()){
  ^~~
railroad.cpp:2:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define rep(i,n)for(int i=0;i<(n);i++)
                              ^
railroad.cpp:51:2: note: in expansion of macro 'rep'
  rep(i,v.size()){
  ^~~
railroad.cpp:2:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 #define rep(i,n)for(int i=0;i<(n);i++)
                              ^
railroad.cpp:57:2: note: in expansion of macro 'rep'
  rep(i,v.size()){
  ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...