Submission #388094

# Submission time Handle Problem Language Result Execution time Memory
388094 2021-04-10T06:04:07 Z mohamedsobhi777 Cats or Dogs (JOI18_catdog) C++14
0 / 100
0 ms 204 KB
#include<bits/stdc++.h>
#include "catdog.h"

using namespace std ; 

int x;
const int MX = 1000 + 7 ; 
int val[MX] ;
vector<int> adj[MX] ;
int root ; 

void initialize(int N, std::vector<int> A, std::vector<int> B)
{
       for(int i = 0 ;i < N ;++ i){
              adj[A[i]].push_back(B[i]) ; 
              adj[B[i]].push_back(A[i]) ; 
       }
       for(int i =1 ;i <= N ; ++ i){
              if(adj[i].size() == 1){
                     root = i ;
              }
       }
}

int dfs(int x, int p , int lst = 0){
       int ret = 0 ; 
       if(val[x] && lst && val[x] != lst){
              ++ret ; 
       }
       for(auto u : adj[x]){
              if(u == p)continue ; 
              ret += dfs(u , x , (val[x]?val[x]:lst) ) ; 
       }
       return ret;
}

int cat(int v)
{
       val[v] = 1; 
       return dfs(root , root ) ; 
}

int dog(int v)
{
       val[v] = 2; 
       return dfs(root , root ) ; 
}

int neighbor(int v)
{
       val[v] =0 ; 
       return dfs(root , root ) ;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Incorrect 0 ms 204 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Incorrect 0 ms 204 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 204 KB Output is correct
2 Incorrect 0 ms 204 KB Output isn't correct
3 Halted 0 ms 0 KB -