Submission #124793

#TimeUTC-0UsernameProblemLanguageResultExecution timeMemory
1247932019-07-04 02:05:25model_codeCat in a tree (BOI17_catinatree)C++17
100 / 100
97 ms19960 KiB
#include<cstdio>
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int N,D;
vector<vector<int> > T;
vector<int> opt, optdist, sacrdist;
void DFS(int pos) {
// Base case: pos is a leaf
if(T[pos].size() == 0) {
opt[pos] = 1;
optdist[pos] = 0;
sacrdist[pos] = D;
return;
}
int v = T[pos][0];
DFS(v);
if(optdist[v] + 1 >= D) {
opt[pos] = opt[v] + 1;
optdist[pos] = 0;
sacrdist[pos] = optdist[v] + 1;
} else {
opt[pos] = opt[v];
optdist[pos] = optdist[v] + 1;
sacrdist[pos] = sacrdist[v] + 1;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilation message (stderr)

catinatree.cpp: In function 'void DFS(int)':
catinatree.cpp:33:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 1; i < T[pos].size(); ++i) {
                 ~~^~~~~~~~~~~~~~~
catinatree.cpp:49:7: warning: unused variable 'dss' [-Wunused-variable]
   int dss = sacrdist[pos] + sacrdist[v] + 1;
       ^~~
catinatree.cpp: In function 'int main()':
catinatree.cpp:69:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &N, &D);
  ~~~~~^~~~~~~~~~~~~~~~
catinatree.cpp:76:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &a);
   ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...