제출 #73164

#제출 시각아이디문제언어결과실행 시간메모리
73164autumn_eelRoller Coaster Railroad (IOI16_railroad)C++14
0 / 100
356 ms29444 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(); 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:39: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:50: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:56: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...