제출 #24428

#제출 시각아이디문제언어결과실행 시간메모리
24428gs14004Roller Coaster Railroad (IOI16_railroad)C++11
30 / 100
253 ms11444 KiB
#include "railroad.h" #include <bits/stdc++.h> using namespace std; typedef pair<int, int> pi; struct disj{ int pa[400005]; void init(int n){ for(int i=0; i<=n; i++) pa[i] = i; } int find(int x){ return pa[x] = (pa[x] == x ? x : find(pa[x])); } bool uni(int p, int q){ p = find(p); q = find(q); if(p == q) return 0; pa[q] = p; return 1; } }disj; int dx[400005]; map<int, int> mp; long long plan_roller_coaster(std::vector<int> s, std::vector<int> t) { vector<int> v; vector<int> crd; int n = (int) s.size(); for(int i=0; i<n; i++){ crd.push_back(s[i]); crd.push_back(t[i]); } sort(crd.begin(), crd.end()); crd.resize(unique(crd.begin(), crd.end()) - crd.begin()); disj.init(crd.size()); for(int i=0; i<n; i++){ s[i] = lower_bound(crd.begin(), crd.end(), s[i]) - crd.begin(); t[i] = lower_bound(crd.begin(), crd.end(), t[i]) - crd.begin(); dx[s[i]]--; dx[t[i]]++; disj.uni(s[i], t[i]); } int cur = 1; for(int i=0; i<crd.size(); i++){ cur += dx[i]; if(cur < 0) return 1; if(cur > 0 && i+1 < crd.size()) disj.uni(i, i+1); } for(int i=1; i<crd.size(); i++){ if(disj.find(0) != disj.find(i)) return 1; } return 0; }

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

railroad.cpp: In function 'long long int plan_roller_coaster(std::vector<int>, std::vector<int>)':
railroad.cpp:43:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<crd.size(); i++){
                ^
railroad.cpp:46:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(cur > 0 && i+1 < crd.size()) disj.uni(i, i+1);
                     ^
railroad.cpp:48:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=1; i<crd.size(); i++){
                ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...