제출 #434258

#제출 시각아이디문제언어결과실행 시간메모리
434258MonchitoToy Train (IOI17_train)C++14
5 / 100
2076 ms1356 KiB
#include "train.h"
#include <algorithm>
using namespace std;

const int MAXN = 5e3;

int n, m;
int G[MAXN];
bool vis[MAXN];

void DFS(int u, int& ret, vector<int>& r) {
    vis[u] = true;
    if(G[u] == u) {
        ret = (r[u]==1)? 1 : 0;
        return;
    }
    DFS(G[u], ret, r);
}

vector<int> who_wins(vector<int> a, vector<int> r, vector<int> u, vector<int> v) {
    n = (int)a.size();
    m = (int)u.size();
    vector<vector<int>> graph(n);
    vector<pair<int,int>> edges(m);

    for(int i=0; i<m; i++)
        edges[i] = make_pair(u[i], v[i]);

    sort(edges.begin(), edges.end());

    for(int i=0; i<m; i++) 
        graph[edges[i].first].push_back(edges[i].second); 
    
    for(int i=0; i<n; i++) {
        if((int)graph[i].size() == 1) { G[i] = graph[i][0]; continue; }
        
        if(a[i] == 1)
            (r[i]==1)? G[i] = graph[i][0] : G[i] = graph[i][1];
        
        else 
            (r[i]==1)? G[i] = graph[i][1] : G[i] = graph[i][0];
    }

    int current;
    vector<int> ans(n);
    
    for(int i=0; i<n; i++) {
        if(!vis[i]) {
            DFS(i, current, r); 
        }

        ans[i] = current;
    }
    
    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:52:16: warning: 'current' may be used uninitialized in this function [-Wmaybe-uninitialized]
   52 |         ans[i] = current;
#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...