답안 #863332

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
863332 2023-10-20T04:27:52 Z maks007 Paths (BOI18_paths) C++14
0 / 100
3000 ms 10640 KB
// Bismi Allah
#include "bits/stdc++.h"

using namespace std;

#define int long long

signed main () {
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	int n, m, k, ans = 0;
	cin >> n >> m >> k;
	vector <int> color(n), g[n], used(n);
	set <int> colorUsed;
	function <void(int)> dfs=[&](int v) {
		colorUsed.insert(color[v]);
		if(colorUsed.size() > 1) ans ++;
		used[v] = 1;
		for(auto u : g[v] ) {
			if(!used[u] && colorUsed.count(color[u]) == 0) dfs(u);
		}
		colorUsed.erase(color[v]);
	};
	
	for(int i = 0; i < n; i ++) cin >> color[i];
	for(int i = 0; i < m; i ++) {
		int u, v;
		cin >> u >> v;
		u --, v --;
		g[u].push_back(v);
		g[v].push_back(u);
	}
	for(int firstColor = 1; firstColor <= k; firstColor ++) {
		for(int i = 0; i < n; i ++) {
			if(color[i] == firstColor) {
				dfs(i);
				for(int j = 0; j < used.size(); j ++) used[j]=0;
				colorUsed.clear();
			}
		}
	}
	cout << ans;
	return 0;
}

Compilation message

paths.cpp: In function 'int main()':
paths.cpp:37:22: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |     for(int j = 0; j < used.size(); j ++) used[j]=0;
      |                    ~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 3003 ms 10640 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 344 KB Output is correct
2 Incorrect 723 ms 3380 KB Output isn't correct
3 Halted 0 ms 0 KB -