제출 #68212

#제출 시각아이디문제언어결과실행 시간메모리
68212KLPP장난감 기차 (IOI17_train)C++14
0 / 100
236 ms1432 KiB


    #include "train.h"
    #include<vector>
    #include<iostream>
    #include<queue>
    using namespace std;
    vector<int>nei[5000];
    vector<int>inverse[5000];
    int owner[5000];
    int n,m;
     
    std::vector<int> who_wins(std::vector<int> a, std::vector<int> r, std::vector<int> u, std::vector<int> v) {
    	n=a.size();m=u.size();
    	for(int i=0;i<n;i++){
    		nei[u[i]].push_back(v[i]);
    		inverse[v[i]].push_back(u[i]);
    	}
    	queue<int> marcados;
    	bool b[n];
    	for(int i=0;i<n;i++)b[i]=false;
    	for(int start=0;start<n;start++){
    		if(r[start]>0){
    			queue<int> Q;
    			Q.push(start);
    			bool visited[n];
    			for(int i=0;i<n;i++)visited[i]=false;
    			while(!Q.empty()){
    				int u=Q.front();Q.pop();
    				for(int i=0;i<nei[u].size();i++){
    					int v=nei[u][i];
    					if(!visited[v]){
    						visited[v]=true;
    						Q.push(v);
    					}
    				}
    			}
    			b[start]=false;
    			if(visited[start]){
    				marcados.push(start);
				b[start]=true;
    			}
    		}
    	}
    	for(int start=0;start<n;start++){
    		
    			queue<int> Q;
    			Q.push(start);
    			bool visited[n];
    			for(int i=0;i<n;i++)visited[i]=false;
    			while(!Q.empty()){
    				int u=Q.front();Q.pop();
    				for(int i=0;i<nei[u].size();i++){
    					int v=nei[u][i];
    					if(!visited[v]){
    						visited[v]=true;
    						Q.push(v);
    					}
    				}
    			}
    			for(int i=0;i<n;i++){
				if(visited[i] && b[i])b[start]=true;
			}
    		
    	}
    	vector<int> ans;
    	for(int i=0;i<n;i++){
    		ans.push_back(b[i]);
    		//cout<<b[i]<<endl;
    	}
    	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:30:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0;i<nei[u].size();i++){
                     ~^~~~~~~~~~~~~~
train.cpp:53:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         for(int i=0;i<nei[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...