Submission #237011

# Submission time Handle Problem Language Result Execution time Memory
237011 2020-06-04T08:41:34 Z crossing0ver Friend (IOI14_friend) C++17
46 / 100
228 ms 65540 KB
#include<bits/stdc++.h>
//#include "friend.h"
using namespace std;
const int MAXN = 1E5+5;
int n,val[MAXN];
vector<int> adj[MAXN];
int dp[MAXN][2];
int case1(){
	int mxval = 0;
	for (int i = 0; i < (1 << n); i++) {
		vector<int> x;
		x.clear();
		for (int j = 0; j < n; j++) {
			if ( (1 << j) & i) 
				x.push_back(j);
		}
		bool flag = 1;
		for (int j:x) {
			for (int k:x) {
				for (int h : adj[j])
					if (h == k) flag = 0;
			}
		}
		if (flag) {
			int s = 0;
			for (int j:x) s += val[j];
			mxval = max(mxval,s);
		}
	}
	return mxval;
}
int case2(){
	int s = 0;
	for (int i = 0; i < n; i++) s+= val[i];
	return s;	
}

void dfs (int v,int par) {
	dp[v][0] = val[v];
	for (int i: adj[v]) {
		if (i == par) continue;
		dfs(i,v);
		dp[v][1] += dp[i][0];
		dp[v][0] += dp[i][1];
	}
	dp[v][0] = max(dp[v][0],dp[v][1]);
}
int case4() {
	dfs(0,0);
	return dp[0][0];	
}
int deg[MAXN];
int case5() {
	int E = 0,S = 0;
	for (int i = 0 ; i < n; i++) E += adj[i].size();
	for (int i = 0; i < n; i++) deg[i] = adj[i].size(), S += val[i];
	E/=2;
	E++;
	while (true) {
		bool flag = 0;
		double mx = 0;
		int in = -1;
		for (int i = 0; i < n; i++) {
			if (deg[i] > 0) {
				flag = 1;
				if ((S - val[i])/(E - deg[i]) > mx) {
					mx = (double)(S - val[i])/(E - deg[i]);
					in = i;
				}
			}
		}
		if (!flag) break;
		for (int i:adj[in]) deg[i]--;
		S -= val[in];
		E -= deg[in];
		deg[in] = 0;
	}
	return S;
}
int findSample(int n1,int confidence[],int host[],int protocol[]){
	n = n1;
	int type[] = {1,1,1};
	for (int i =0; i < n; i++) val[i] = confidence[i];
	for (int i = 1; i < n; i++) {
		int x = protocol[i];
		int v = host[i];
		for (int j =0; j< 3; j++) if (x != j ) type[j] = 0;
		if (x == 0) {
			adj[v].push_back(i);
			adj[i].push_back(v);
		}
		else {
			for (int f:adj[v]) adj[i].push_back(f), adj[f].push_back(i);
			if (x == 2) {
				adj[i].push_back(v);
				adj[v].push_back(i);
			}
		}
	}
	if (n <= 10) return case1();
	if (type[1]) return case2();
	if (type[2]) return *max_element(val,val+n);
	if (type[0]) return case4();
return 1;
}
# Verdict Execution time Memory Grader output
1 Correct 6 ms 2688 KB Output is correct
2 Correct 6 ms 2688 KB Output is correct
3 Correct 6 ms 2688 KB Output is correct
4 Correct 6 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 6 ms 2688 KB Output is correct
7 Correct 6 ms 2688 KB Output is correct
8 Correct 6 ms 2688 KB Output is correct
9 Correct 6 ms 2688 KB Output is correct
10 Correct 6 ms 2688 KB Output is correct
11 Correct 6 ms 2688 KB Output is correct
12 Correct 6 ms 2688 KB Output is correct
13 Correct 6 ms 2688 KB Output is correct
14 Correct 6 ms 2688 KB Output is correct
15 Correct 6 ms 2688 KB Output is correct
16 Correct 6 ms 2688 KB Output is correct
17 Correct 6 ms 2688 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 2688 KB Output is correct
2 Correct 6 ms 2688 KB Output is correct
3 Correct 6 ms 2688 KB Output is correct
4 Correct 6 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 6 ms 2688 KB Output is correct
7 Correct 6 ms 2688 KB Output is correct
8 Correct 6 ms 2560 KB Output is correct
9 Correct 6 ms 2688 KB Output is correct
10 Correct 6 ms 2688 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 8 ms 3584 KB Output is correct
2 Correct 15 ms 6528 KB Output is correct
3 Correct 6 ms 2688 KB Output is correct
4 Correct 11 ms 5504 KB Output is correct
5 Correct 15 ms 6528 KB Output is correct
6 Correct 6 ms 2688 KB Output is correct
7 Correct 7 ms 3200 KB Output is correct
8 Correct 7 ms 3456 KB Output is correct
9 Correct 6 ms 2688 KB Output is correct
10 Correct 15 ms 6784 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 2688 KB Output is correct
2 Correct 6 ms 2688 KB Output is correct
3 Correct 6 ms 2688 KB Output is correct
4 Correct 6 ms 2688 KB Output is correct
5 Correct 6 ms 2816 KB Output is correct
6 Correct 6 ms 2688 KB Output is correct
7 Correct 6 ms 2688 KB Output is correct
8 Correct 6 ms 2688 KB Output is correct
9 Correct 6 ms 2688 KB Output is correct
10 Correct 6 ms 2688 KB Output is correct
11 Correct 6 ms 2688 KB Output is correct
12 Correct 6 ms 2920 KB Output is correct
13 Correct 6 ms 2688 KB Output is correct
14 Correct 6 ms 2688 KB Output is correct
15 Correct 6 ms 2688 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 6 ms 2688 KB Output is correct
2 Correct 6 ms 2688 KB Output is correct
3 Correct 6 ms 2688 KB Output is correct
4 Correct 6 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 6 ms 2688 KB Output is correct
7 Correct 6 ms 2688 KB Output is correct
8 Correct 8 ms 2688 KB Output is correct
9 Correct 6 ms 2816 KB Output is correct
10 Correct 6 ms 2688 KB Output is correct
11 Incorrect 6 ms 2688 KB Output isn't correct
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 2688 KB Output is correct
2 Correct 6 ms 2688 KB Output is correct
3 Correct 6 ms 2688 KB Output is correct
4 Correct 6 ms 2688 KB Output is correct
5 Correct 6 ms 2688 KB Output is correct
6 Correct 6 ms 2688 KB Output is correct
7 Correct 6 ms 2688 KB Output is correct
8 Correct 6 ms 2688 KB Output is correct
9 Correct 6 ms 2688 KB Output is correct
10 Correct 6 ms 2688 KB Output is correct
11 Correct 6 ms 2688 KB Output is correct
12 Runtime error 228 ms 65540 KB Execution killed with signal 9 (could be triggered by violating memory limits)
13 Halted 0 ms 0 KB -