Submission #863373

# Submission time Handle Problem Language Result Execution time Memory
863373 2023-10-20T06:02:12 Z maks007 Paths (BOI18_paths) C++14
23 / 100
3000 ms 22608 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, changes = 1;
	cin >> n >> m >> k;
	vector <int> color(n), g[n], used(n), permutation(k);
	set <int> colorUsed;
	function <void(int, int)> dfs=[&](int v, int cur) {
		if(cur >= changes) {
			ans++;
		}
		if(cur == permutation.size() - 1) return;
		used[v] = 1;
		for(auto u : g[v] ) {
			if(!used[u] && color[u] == permutation[cur+1]) dfs(u, cur + 1);
		}
		used[v]=0;
	};
	
	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);
	}
	vector <int> prev;	
	for(int i = 0; i < k; i ++) permutation[i] = i + 1;
	do{
		if(prev.size() > 0) {
			for(int i = 0; i < permutation.size(); i ++) {
				if(prev[i] != permutation[i]) {
					changes = i;
					break;
				}
			}
			changes = max(changes, 1LL);
		}
		for(int i = 0; i < n; i ++) {
			if(color[i] == permutation[0]) dfs(i, 0);
		}
		prev = permutation;
	} while(next_permutation(permutation.begin(), permutation.end()));		
	
	cout << ans;
	return 0;
}

Compilation message

paths.cpp: In lambda function:
paths.cpp:19:10: 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]
   19 |   if(cur == permutation.size() - 1) return;
      |      ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
paths.cpp: In function 'int main()':
paths.cpp:39:21: 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]
   39 |    for(int i = 0; i < permutation.size(); i ++) {
      |                   ~~^~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 414 ms 7796 KB Output is correct
2 Correct 2157 ms 7636 KB Output is correct
3 Correct 269 ms 22608 KB Output is correct
4 Correct 67 ms 9524 KB Output is correct
5 Correct 59 ms 9556 KB Output is correct
6 Execution timed out 3057 ms 17060 KB Time limit exceeded
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 0 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 414 ms 7796 KB Output is correct
12 Correct 2157 ms 7636 KB Output is correct
13 Correct 269 ms 22608 KB Output is correct
14 Correct 67 ms 9524 KB Output is correct
15 Correct 59 ms 9556 KB Output is correct
16 Execution timed out 3057 ms 17060 KB Time limit exceeded
17 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Execution timed out 3073 ms 2612 KB Time limit exceeded
3 Halted 0 ms 0 KB -