Submission #97312

# Submission time Handle Problem Language Result Execution time Memory
97312 2019-02-15T03:38:20 Z E869120 Werewolf (IOI18_werewolf) C++14
15 / 100
424 ms 19704 KB
#include "werewolf.h"
#include <bits/stdc++.h>
using namespace std;

int N, M, Q, dp[5009][2]; vector<int>G[5009];

vector<int> check_validity(int NN, vector<int> X, vector<int> Y, vector<int> S, vector<int> E, vector<int> L, vector<int> R) {
	N = NN; M = X.size(); Q = S.size();
	for (int i = 0; i < M; i++) { G[X[i]].push_back(Y[i]); G[Y[i]].push_back(X[i]); }
	
	vector<int>ans;
	
	for (int i = 0; i < Q; i++) {
		for (int j = 0; j <= N; j++) { dp[j][0] = 0; dp[j][1] = 0; }
		dp[S[i]][0] = 1; queue<pair<int, int>> que; que.push(make_pair(S[i], 0));
		
		while(!que.empty()){
			int pos1 = que.front().first, pos2 = que.front().second; que.pop();
			
			if (pos2 == 0 && dp[pos1][1] == 0 && L[i] <= pos1 && pos1 <= R[i]) {
				dp[pos1][1] = 1;
				que.push(make_pair(pos1, 1));
			}
			
			for (int j = 0; j < G[pos1].size(); j++) {
				int to = G[pos1][j];
				if (pos2 == 0 && to < L[i]) continue;
				if (pos2 == 1 && R[i] < to) continue;
				if (dp[to][pos2] == 1) continue;
				dp[to][pos2] = 1;
				que.push(make_pair(to, pos2));
			}
		}
		
		ans.push_back(dp[E[i]][1]);
	}
	return ans;
}

Compilation message

werewolf.cpp: In function 'std::vector<int> check_validity(int, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
werewolf.cpp:25:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (int j = 0; j < G[pos1].size(); j++) {
                    ~~^~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 4 ms 512 KB Output is correct
2 Correct 3 ms 512 KB Output is correct
3 Correct 3 ms 384 KB Output is correct
4 Correct 3 ms 512 KB Output is correct
5 Correct 3 ms 512 KB Output is correct
6 Correct 4 ms 384 KB Output is correct
7 Correct 4 ms 512 KB Output is correct
8 Correct 3 ms 512 KB Output is correct
9 Correct 3 ms 512 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 4 ms 512 KB Output is correct
2 Correct 3 ms 512 KB Output is correct
3 Correct 3 ms 384 KB Output is correct
4 Correct 3 ms 512 KB Output is correct
5 Correct 3 ms 512 KB Output is correct
6 Correct 4 ms 384 KB Output is correct
7 Correct 4 ms 512 KB Output is correct
8 Correct 3 ms 512 KB Output is correct
9 Correct 3 ms 512 KB Output is correct
10 Correct 424 ms 1004 KB Output is correct
11 Correct 316 ms 1020 KB Output is correct
12 Correct 29 ms 896 KB Output is correct
13 Correct 367 ms 888 KB Output is correct
14 Correct 250 ms 888 KB Output is correct
15 Correct 271 ms 1016 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 226 ms 19704 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 4 ms 512 KB Output is correct
2 Correct 3 ms 512 KB Output is correct
3 Correct 3 ms 384 KB Output is correct
4 Correct 3 ms 512 KB Output is correct
5 Correct 3 ms 512 KB Output is correct
6 Correct 4 ms 384 KB Output is correct
7 Correct 4 ms 512 KB Output is correct
8 Correct 3 ms 512 KB Output is correct
9 Correct 3 ms 512 KB Output is correct
10 Correct 424 ms 1004 KB Output is correct
11 Correct 316 ms 1020 KB Output is correct
12 Correct 29 ms 896 KB Output is correct
13 Correct 367 ms 888 KB Output is correct
14 Correct 250 ms 888 KB Output is correct
15 Correct 271 ms 1016 KB Output is correct
16 Runtime error 226 ms 19704 KB Execution killed with signal 11 (could be triggered by violating memory limits)
17 Halted 0 ms 0 KB -