# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
145480 |
2019-08-20T07:19:11 Z |
TAMREF |
Friend (IOI14_friend) |
C++11 |
|
38 ms |
4956 KB |
#include "friend.h"
#include <bits/stdc++.h>
#define all(v) (v).begin(),(v).end()
using namespace std;
int n;
vector<int> c, h, p;
int bf(){
vector<vector<int>> e(n, vector<int>(n));
for(int i = 1; i < n; i++){
switch(p[i]){
case 0:
e[h[i]][i] = e[i][h[i]] = 1;
break;
case 1:
for(int j = 0; j < i; j++){
if(e[h[i]][j]) e[i][j] = e[j][i] = 1;
}
break;
case 2:
e[h[i]][i] = e[i][h[i]] = 1;
for(int j = 0; j < i; j++){
if(e[h[i]][j]) e[i][j] = e[j][i] = 1;
}
break;
}
}
int ans = 0;
for(int b = 0; b < (1<<n); b++){
int lans = 0;
for(int i = 0; i < n; i++){
if(~b >> i & 1) continue;
for(int j = 0; j < n; j++){
if(~b >> j & 1) continue;
if(e[i][j]) goto FAIL;
}
}
for(int i = 0; i < n; i++){
if(b >> i & 1){
lans += c[i];
}
}
ans = max(ans, lans);
FAIL:
continue;
}
return ans;
}
vector<int> G[100005];
int dp[100005][2];
void dfs(int x){
dp[x][1] = c[x];
for(int u : G[x]){
dfs(u);
dp[x][0] += max(dp[u][0], dp[u][1]);
dp[x][1] += dp[u][0];
}
}
int tree_dp(){
for(int i = 1; i < n; i++) G[h[i]].push_back(i);
dfs(0);
return max(dp[0][0], dp[0][1]);
}
int findSample(int N, int C[], int H[], int P[]){
n = N;
c = vector<int>(C,C+n);
h = vector<int>(H,H+n);
p = vector<int>(P,P+n);
int uq;
p[0] = p[1];
if((uq = *min_element(all(p))) == *max_element(all(p))){
switch(uq){
case 0:
return tree_dp();
case 1:
return accumulate(all(c), 0);
case 2:
return *max_element(all(c));
}
}
if(n <= 10) return bf();
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
2680 KB |
Output is correct |
2 |
Correct |
4 ms |
2680 KB |
Output is correct |
3 |
Correct |
4 ms |
2680 KB |
Output is correct |
4 |
Correct |
4 ms |
2680 KB |
Output is correct |
5 |
Correct |
5 ms |
2680 KB |
Output is correct |
6 |
Correct |
5 ms |
2680 KB |
Output is correct |
7 |
Correct |
4 ms |
2680 KB |
Output is correct |
8 |
Correct |
4 ms |
2680 KB |
Output is correct |
9 |
Correct |
4 ms |
2652 KB |
Output is correct |
10 |
Correct |
4 ms |
2680 KB |
Output is correct |
11 |
Correct |
4 ms |
2680 KB |
Output is correct |
12 |
Correct |
4 ms |
2680 KB |
Output is correct |
13 |
Correct |
4 ms |
2680 KB |
Output is correct |
14 |
Correct |
4 ms |
2680 KB |
Output is correct |
15 |
Correct |
4 ms |
2680 KB |
Output is correct |
16 |
Correct |
4 ms |
2680 KB |
Output is correct |
17 |
Correct |
4 ms |
2680 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
2680 KB |
Output is correct |
2 |
Correct |
4 ms |
2680 KB |
Output is correct |
3 |
Correct |
4 ms |
2680 KB |
Output is correct |
4 |
Correct |
4 ms |
2652 KB |
Output is correct |
5 |
Correct |
4 ms |
2680 KB |
Output is correct |
6 |
Correct |
4 ms |
2680 KB |
Output is correct |
7 |
Correct |
4 ms |
2680 KB |
Output is correct |
8 |
Correct |
4 ms |
2680 KB |
Output is correct |
9 |
Correct |
4 ms |
2680 KB |
Output is correct |
10 |
Correct |
3 ms |
2680 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
2680 KB |
Output is correct |
2 |
Correct |
4 ms |
2680 KB |
Output is correct |
3 |
Correct |
4 ms |
2680 KB |
Output is correct |
4 |
Correct |
4 ms |
2680 KB |
Output is correct |
5 |
Correct |
4 ms |
2680 KB |
Output is correct |
6 |
Correct |
4 ms |
2680 KB |
Output is correct |
7 |
Correct |
4 ms |
2680 KB |
Output is correct |
8 |
Correct |
4 ms |
2680 KB |
Output is correct |
9 |
Correct |
4 ms |
2680 KB |
Output is correct |
10 |
Correct |
4 ms |
2680 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
2684 KB |
Output is correct |
2 |
Correct |
4 ms |
2680 KB |
Output is correct |
3 |
Correct |
5 ms |
2680 KB |
Output is correct |
4 |
Correct |
4 ms |
2680 KB |
Output is correct |
5 |
Correct |
5 ms |
2808 KB |
Output is correct |
6 |
Correct |
5 ms |
2680 KB |
Output is correct |
7 |
Correct |
4 ms |
2680 KB |
Output is correct |
8 |
Correct |
5 ms |
2808 KB |
Output is correct |
9 |
Correct |
4 ms |
2680 KB |
Output is correct |
10 |
Correct |
4 ms |
2680 KB |
Output is correct |
11 |
Correct |
5 ms |
2680 KB |
Output is correct |
12 |
Correct |
5 ms |
2680 KB |
Output is correct |
13 |
Correct |
5 ms |
2808 KB |
Output is correct |
14 |
Correct |
5 ms |
2808 KB |
Output is correct |
15 |
Correct |
5 ms |
2808 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
2680 KB |
Output is correct |
2 |
Correct |
4 ms |
2680 KB |
Output is correct |
3 |
Correct |
4 ms |
2680 KB |
Output is correct |
4 |
Correct |
4 ms |
2728 KB |
Output is correct |
5 |
Correct |
4 ms |
2680 KB |
Output is correct |
6 |
Correct |
4 ms |
2680 KB |
Output is correct |
7 |
Correct |
4 ms |
2680 KB |
Output is correct |
8 |
Correct |
4 ms |
2680 KB |
Output is correct |
9 |
Correct |
4 ms |
2812 KB |
Output is correct |
10 |
Correct |
5 ms |
2680 KB |
Output is correct |
11 |
Incorrect |
5 ms |
2680 KB |
Output isn't correct |
12 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
2680 KB |
Output is correct |
2 |
Correct |
4 ms |
2808 KB |
Output is correct |
3 |
Correct |
4 ms |
2680 KB |
Output is correct |
4 |
Correct |
5 ms |
2680 KB |
Output is correct |
5 |
Correct |
4 ms |
2680 KB |
Output is correct |
6 |
Correct |
4 ms |
2680 KB |
Output is correct |
7 |
Correct |
4 ms |
2776 KB |
Output is correct |
8 |
Correct |
4 ms |
2680 KB |
Output is correct |
9 |
Correct |
4 ms |
2680 KB |
Output is correct |
10 |
Correct |
4 ms |
2680 KB |
Output is correct |
11 |
Correct |
4 ms |
2680 KB |
Output is correct |
12 |
Incorrect |
38 ms |
4956 KB |
Output isn't correct |
13 |
Halted |
0 ms |
0 KB |
- |