Submission #447676

#TimeUsernameProblemLanguageResultExecution timeMemory
447676blue열쇠 (IOI21_keys)C++17
37 / 100
3066 ms33848 KiB
#include <vector> #include "keys.h" #include <iostream> #include <queue> using namespace std; vector<int> find_reachable(vector<int> r, vector<int> u, vector<int> v, vector<int> c) { int N = r.size(); int M = u.size(); vector<int> reach_count(N, 0); vector<int> edge[N]; vector<int> col[N]; for(int j = 0; j < M; j++) { edge[ u[j] ].push_back( v[j] ); col[ u[j] ].push_back( c[j] ); edge[ v[j] ].push_back( u[j] ); col[ v[j] ].push_back( c[j] ); } cerr << "check\n"; for(int src = 0; src < N; src++) { vector<int> acquired(N, 0); vector<int> illegal_edges[N]; //by color vector<int> visit(N, 0); queue<int> tbv; tbv.push(src); while(!tbv.empty()) { int x = tbv.front(); tbv.pop(); if(visit[x]) continue; visit[x] = 1; acquired[ r[x] ] = 1; for(int f: illegal_edges[ r[x] ]) tbv.push(f); illegal_edges[ r[x] ].clear(); for(int e = 0; e < edge[x].size(); e++) { int y = edge[x][e]; int z = col[x][e]; if(acquired[z]) tbv.push(y); else illegal_edges[z].push_back(y); } } for(int i = 0; i < N; i++) reach_count[src] += visit[i]; } cerr << "check 2\n"; vector<int> res_list; int min_count = 1e9; for(int i = 0; i < N; i++) { if(reach_count[i] == min_count) res_list.push_back(i); else if(reach_count[i] < min_count) { min_count = reach_count[i]; res_list.clear(); res_list.push_back(i); } } cerr << "check 3\n"; vector<int> res(N, 0); for(int r1: res_list) res[r1] = 1; // for(int i = 0; i < N; i++) cerr << "reach_count[" << i << "] = " << reach_count[i] << '\n'; cerr << min_count << '\n'; return res; }

Compilation message (stderr)

keys.cpp: In function 'std::vector<int> find_reachable(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
keys.cpp:54:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   54 |    for(int e = 0; e < edge[x].size(); e++)
      |                   ~~^~~~~~~~~~~~~~~~
#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...