Submission #209671

# Submission time Handle Problem Language Result Execution time Memory
209671 2020-03-15T05:29:26 Z TAISA_ Werewolf (IOI18_werewolf) C++14
15 / 100
4000 ms 22252 KB
#include "werewolf.h"
#include <bits/stdc++.h>
using namespace std;
struct UF{
	vector<int> par,sz;
	UF(int n){
		par.resize(n);
		sz.resize(n,1);
		for(int i=0;i<n;i++)par[i]=i;
	}
	int find(int x){
		if(par[x]==x)return par[x];
		return par[x]=find(par[x]);
	}
	void unite(int u,int v){
		u=find(u);v=find(v);
		if(u==v)return;
		if(sz[u]<sz[v])swap(u,v);
		par[v]=u;
		sz[u]+=sz[v];
	}
	bool same(int u,int v){
		return find(u)==find(v);
	}
};
std::vector<int> check_validity(int N, std::vector<int> X, std::vector<int> Y,
                                std::vector<int> S, std::vector<int> E,
                                std::vector<int> L, std::vector<int> R) {
	int n=N,m=X.size(),q=S.size();
	vector<int> res(q);
	for(int i=0;i<q;i++){
		UF ua(n),ub(n);
		for(int j=0;j<m;j++){
			if(X[j]<=R[i]&&Y[j]<=R[i]){
				ua.unite(X[j],Y[j]);
			}
			if(X[j]>=L[i]&&Y[j]>=L[i]){
				ub.unite(X[j],Y[j]);
			}
		}
		for(int j=0;j<n;j++){
			if(ua.same(E[i],j)&&ub.same(j,S[i])){
				res[i]=1;
			}
		}
	}
	return res;
}
# Verdict Execution time Memory Grader output
1 Correct 6 ms 376 KB Output is correct
2 Correct 6 ms 256 KB Output is correct
3 Correct 6 ms 376 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 6 ms 248 KB Output is correct
7 Correct 5 ms 256 KB Output is correct
8 Correct 6 ms 256 KB Output is correct
9 Correct 5 ms 256 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 376 KB Output is correct
2 Correct 6 ms 256 KB Output is correct
3 Correct 6 ms 376 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 6 ms 248 KB Output is correct
7 Correct 5 ms 256 KB Output is correct
8 Correct 6 ms 256 KB Output is correct
9 Correct 5 ms 256 KB Output is correct
10 Correct 510 ms 632 KB Output is correct
11 Correct 461 ms 632 KB Output is correct
12 Correct 410 ms 760 KB Output is correct
13 Correct 532 ms 636 KB Output is correct
14 Correct 468 ms 632 KB Output is correct
15 Correct 684 ms 760 KB Output is correct
# Verdict Execution time Memory Grader output
1 Execution timed out 4046 ms 22252 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 376 KB Output is correct
2 Correct 6 ms 256 KB Output is correct
3 Correct 6 ms 376 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 5 ms 376 KB Output is correct
6 Correct 6 ms 248 KB Output is correct
7 Correct 5 ms 256 KB Output is correct
8 Correct 6 ms 256 KB Output is correct
9 Correct 5 ms 256 KB Output is correct
10 Correct 510 ms 632 KB Output is correct
11 Correct 461 ms 632 KB Output is correct
12 Correct 410 ms 760 KB Output is correct
13 Correct 532 ms 636 KB Output is correct
14 Correct 468 ms 632 KB Output is correct
15 Correct 684 ms 760 KB Output is correct
16 Execution timed out 4046 ms 22252 KB Time limit exceeded
17 Halted 0 ms 0 KB -