Submission #50520

# Submission time Handle Problem Language Result Execution time Memory
50520 2018-06-11T10:18:16 Z mirbek01 Friend (IOI14_friend) C++17
46 / 100
66 ms 14320 KB
#include "friend.h"

#include <bits/stdc++.h>

using namespace std;

const int N = 1e3 + 2;

int n, g[N][N], dp[N], ar[N], b[N];
vector <int> G[N];

void dfs(int v, int pr){
      int ch = 0;
      for(int to : G[v]){
            if(to == pr) continue;
            dfs(to, v);
            ch += dp[to];
            if(pr != -1)
                  b[pr] += dp[to];
      }
      dp[v] = max(b[v] + ar[v], ch);
}

// Find out best sample
int findSample(int N,int confidence[],int host[],int protocol[]){
      n = N;
      int ans = 0;
      if(n <= 10){
            for(int i = 1; i < n; i ++){
                  if(protocol[i]){
                        for(int j = 0; j < n; j ++){
                              if(g[host[i]][j])
                                    g[j][i] = g[i][j] = 1;
                        }
                  }
                  if(protocol[i] != 1){
                        g[i][host[i]] = g[host[i]][i] = 1;
                  }
            }

            for(int mask = 0; mask < (1 << n); mask ++){
                  vector <int> v;
                  int sum = 0;
                  for(int i = 0; i < n; i ++){
                        int bit = (1 << i) & mask;
                        if(bit){
                              sum += confidence[i];
                              v.push_back(i);
                        }
                  }
                  bool fl = 1;
                  for(int i = 0; i < v.size(); i ++){
                        for(int j = i + 1; j < v.size(); j ++){
                              if(g[v[i]][v[j]]){
                                    fl = 0;
                              }
                        }
                  }
                  if(fl) ans = max(ans, sum);
            }
      } else {
            if(protocol[n - 1] == 2){
                  for(int i = 0; i < n; i ++)
                        ans = max(ans, confidence[i]);
            } else if(protocol[n - 1]){
                  for(int i = 0; i < n; i ++){
                        ans += confidence[i];
                  }
            } else {
                  for(int i = 1; i < n; i ++){
                        G[host[i]].push_back(i);
                        G[i].push_back(host[i]);
                  }
                  for(int i = 0; i < n; i ++)
                        ar[i] = confidence[i];
                  dfs(0, -1);
                  ans = dp[0];
            }
      }
      return ans;
}

Compilation message

friend.cpp: In function 'int findSample(int, int*, int*, int*)':
friend.cpp:52:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                   for(int i = 0; i < v.size(); i ++){
                                  ~~^~~~~~~~~~
friend.cpp:53:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                         for(int j = i + 1; j < v.size(); j ++){
                                            ~~^~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 428 KB Output is correct
4 Correct 2 ms 644 KB Output is correct
5 Correct 2 ms 680 KB Output is correct
6 Correct 2 ms 680 KB Output is correct
7 Correct 3 ms 680 KB Output is correct
8 Correct 3 ms 680 KB Output is correct
9 Correct 3 ms 680 KB Output is correct
10 Correct 2 ms 680 KB Output is correct
11 Correct 3 ms 680 KB Output is correct
12 Correct 2 ms 680 KB Output is correct
13 Correct 2 ms 680 KB Output is correct
14 Correct 2 ms 680 KB Output is correct
15 Correct 3 ms 680 KB Output is correct
16 Correct 2 ms 680 KB Output is correct
17 Correct 3 ms 680 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 680 KB Output is correct
2 Correct 2 ms 740 KB Output is correct
3 Correct 3 ms 740 KB Output is correct
4 Correct 3 ms 740 KB Output is correct
5 Correct 2 ms 740 KB Output is correct
6 Correct 2 ms 740 KB Output is correct
7 Correct 2 ms 740 KB Output is correct
8 Correct 2 ms 740 KB Output is correct
9 Correct 2 ms 740 KB Output is correct
10 Correct 2 ms 740 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 740 KB Output is correct
2 Correct 2 ms 740 KB Output is correct
3 Correct 2 ms 740 KB Output is correct
4 Correct 3 ms 740 KB Output is correct
5 Correct 3 ms 740 KB Output is correct
6 Correct 2 ms 740 KB Output is correct
7 Correct 2 ms 740 KB Output is correct
8 Correct 2 ms 740 KB Output is correct
9 Correct 2 ms 740 KB Output is correct
10 Correct 4 ms 740 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 740 KB Output is correct
2 Correct 2 ms 740 KB Output is correct
3 Correct 2 ms 740 KB Output is correct
4 Correct 2 ms 740 KB Output is correct
5 Correct 3 ms 764 KB Output is correct
6 Correct 2 ms 764 KB Output is correct
7 Correct 3 ms 764 KB Output is correct
8 Correct 3 ms 764 KB Output is correct
9 Correct 2 ms 764 KB Output is correct
10 Correct 2 ms 764 KB Output is correct
11 Correct 2 ms 764 KB Output is correct
12 Correct 2 ms 764 KB Output is correct
13 Correct 3 ms 764 KB Output is correct
14 Correct 2 ms 764 KB Output is correct
15 Correct 2 ms 764 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 764 KB Output is correct
2 Correct 2 ms 764 KB Output is correct
3 Correct 2 ms 764 KB Output is correct
4 Correct 2 ms 764 KB Output is correct
5 Correct 2 ms 764 KB Output is correct
6 Correct 2 ms 764 KB Output is correct
7 Correct 2 ms 764 KB Output is correct
8 Correct 2 ms 764 KB Output is correct
9 Correct 2 ms 764 KB Output is correct
10 Correct 2 ms 764 KB Output is correct
11 Incorrect 2 ms 764 KB Output isn't correct
12 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 764 KB Output is correct
2 Correct 2 ms 764 KB Output is correct
3 Correct 2 ms 764 KB Output is correct
4 Correct 2 ms 764 KB Output is correct
5 Correct 2 ms 764 KB Output is correct
6 Correct 3 ms 764 KB Output is correct
7 Correct 2 ms 764 KB Output is correct
8 Correct 2 ms 764 KB Output is correct
9 Correct 2 ms 764 KB Output is correct
10 Correct 2 ms 764 KB Output is correct
11 Correct 2 ms 764 KB Output is correct
12 Runtime error 66 ms 14320 KB Execution killed with signal 11 (could be triggered by violating memory limits)
13 Halted 0 ms 0 KB -