Submission #50490

#TimeUsernameProblemLanguageResultExecution timeMemory
50490mirbek01Friend (IOI14_friend)C++17
19 / 100
41 ms1788 KiB
#include "friend.h"

#include <bits/stdc++.h>

using namespace std;

const int N = 1e3 + 2;

int n, g[N][N];

// 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 ++){
                        for(int j = i + 1; j < n; j ++){
                              if(!g[i][j])
                                    ans = max(ans, confidence[i] + confidence[j]);
                        }
                  }
            }
      }
      return ans;
}

Compilation message (stderr)

friend.cpp: In function 'int findSample(int, int*, int*, int*)':
friend.cpp:39:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                   for(int i = 0; i < v.size(); i ++){
                                  ~~^~~~~~~~~~
friend.cpp:40:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                         for(int j = i + 1; j < v.size(); j ++){
                                            ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...