Submission #1256495

#TimeUsernameProblemLanguageResultExecution timeMemory
1256495kunzaZa183Friend (IOI14_friend)C++20
100 / 100
16 ms1864 KiB
#include "friend.h"
#include <bits/stdc++.h>
using namespace std;

int findSample(int n, int confidence[], int host[], int protocol[]) {
  vector<int> qvi(n);
  for (int i = n - 1; i > 0; i--) {
    int par = host[i];
    int p = confidence[par], q = qvi[par];
    int p_ = confidence[i], q_ = qvi[i];
    if (protocol[i] == 0) {
      confidence[par] = p + q_;
      qvi[par] = max(p_ + q, q_ + q);
    } else if (protocol[i] == 1) {
      confidence[par] = max({p + p_, p + q_, p_ + q});
      qvi[par] = q + q_;
    } else if (protocol[i] == 2) {
      confidence[par] = max(p + q_, p_ + q);
      qvi[par] = q + q_;
    }

    // cout << i << " " << par << " " << confidence[i] << " " << qvi[i] << "\n";
  }
  // cout << 0 << " " << confidence[0] << " " << qvi[0] << "\n";

  return max(confidence[0], qvi[0]);
}
#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...