제출 #1033617

#제출 시각아이디문제언어결과실행 시간메모리
1033617vjudge1장난감 기차 (IOI17_train)C++17
0 / 100
10 ms8220 KiB
#include "train.h" #include<bits/stdc++.h> using namespace std; vector<int>adj[100100],radj[100100]; stack<int>stk; int onstk[100100],id[100100],low[100100],cmp[100100],sz[100100],CC; void tarjan(int n){ onstk[n]=1; stk.push(n); id[n]=low[n]=++CC; for(auto i:adj[n]){ if(!id[i]) tarjan(i); if(onstk[i]) low[n]=min(low[n],low[i]); } if(low[n]==id[n]){ while(onstk[n]){ int x=stk.top(); stk.pop();cmp[x]=n; onstk[x]=0,sz[n]++; } } } vector<int>ans; void yes(int n){ if(ans[n])return; ans[n]=1; for(auto x:radj[n]) yes(x); } std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) { int n=a.size(); ans.resize(n,0); for(int i=0;i<u.size();i++) adj[u[i]].push_back(v[i]), radj[v[i]].push_back(u[i]); for(int i=0;i<n;i++) if(!id[i])tarjan(i); for(int i=0;i<n;i++) if(sz[cmp[i]]>1&&r[i]) yes(i); return ans; }

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

train.cpp: In function 'std::vector<int> who_wins(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
train.cpp:35:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |     for(int i=0;i<u.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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...