Submission #463959

# Submission time Handle Problem Language Result Execution time Memory
463959 2021-08-12T05:40:34 Z blue Cat in a tree (BOI17_catinatree) C++17
Compilation error
0 ms 0 KB
#include <iostream>
#include <deque>
#define z size()
#define max x
using namespace std; int N,D,x,q=0;deque<int> c[200'000];
deque<int> d(int u){
    deque<int> q(1,1);
    for(int v:c[u]) { auto a=d(v);
        if(q.z<a.z) swap(q,a);
        for(int i=0;i<a.z;i++)q[i]=x(q[i],x(a[i]+(D-i<q.z?q[x(D-i,i)]:0),q[i]+(D-i<a.z?a[x(D-i,i)]:0)));
        for(int i=a.z;i>=0;i--) if(i+1<q.z) q[i]=x(q[i],q[i+1]);}
    q.push_front(q.front());return q;}
int main(){
    cin>>N>>D;for(int i=1;i<N;i++){cin>>x;c[x].push_back(i);}
    for(int r:d(0))q=x(q,r);cout<<q<<'\n';}

Compilation message

catinatree.cpp: In function 'std::deque<int> d(int)':
catinatree.cpp:10:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |         for(int i=0;i<a.z;i++)q[i]=x(q[i],x(a[i]+(D-i<q.z?q[x(D-i,i)]:0),q[i]+(D-i<a.z?a[x(D-i,i)]:0)));
      |                      ^
catinatree.cpp:10:54: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |         for(int i=0;i<a.z;i++)q[i]=x(q[i],x(a[i]+(D-i<q.z?q[x(D-i,i)]:0),q[i]+(D-i<a.z?a[x(D-i,i)]:0)));
      |                                                      ^
catinatree.cpp:10:68: error: 'x' cannot be used as a function
   10 |         for(int i=0;i<a.z;i++)q[i]=x(q[i],x(a[i]+(D-i<q.z?q[x(D-i,i)]:0),q[i]+(D-i<a.z?a[x(D-i,i)]:0)));
      |                                                                    ^
catinatree.cpp:10:83: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |         for(int i=0;i<a.z;i++)q[i]=x(q[i],x(a[i]+(D-i<q.z?q[x(D-i,i)]:0),q[i]+(D-i<a.z?a[x(D-i,i)]:0)));
      |                                                                                   ^
catinatree.cpp:10:97: error: 'x' cannot be used as a function
   10 |         for(int i=0;i<a.z;i++)q[i]=x(q[i],x(a[i]+(D-i<q.z?q[x(D-i,i)]:0),q[i]+(D-i<a.z?a[x(D-i,i)]:0)));
      |                                                                                                 ^
catinatree.cpp:10:102: error: 'x' cannot be used as a function
   10 |         for(int i=0;i<a.z;i++)q[i]=x(q[i],x(a[i]+(D-i<q.z?q[x(D-i,i)]:0),q[i]+(D-i<a.z?a[x(D-i,i)]:0)));
      |                                                                                                      ^
catinatree.cpp:10:103: error: 'x' cannot be used as a function
   10 |         for(int i=0;i<a.z;i++)q[i]=x(q[i],x(a[i]+(D-i<q.z?q[x(D-i,i)]:0),q[i]+(D-i<a.z?a[x(D-i,i)]:0)));
      |                                                                                                       ^
catinatree.cpp:11:39: warning: comparison of integer expressions of different signedness: 'int' and 'std::deque<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |         for(int i=a.z;i>=0;i--) if(i+1<q.z) q[i]=x(q[i],q[i+1]);}
      |                                       ^
catinatree.cpp:11:63: error: 'x' cannot be used as a function
   11 |         for(int i=a.z;i>=0;i--) if(i+1<q.z) q[i]=x(q[i],q[i+1]);}
      |                                                               ^
catinatree.cpp: In function 'int main()':
catinatree.cpp:15:27: error: 'x' cannot be used as a function
   15 |     for(int r:d(0))q=x(q,r);cout<<q<<'\n';}
      |                           ^
catinatree.cpp:15:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   15 |     for(int r:d(0))q=x(q,r);cout<<q<<'\n';}
      |     ^~~
catinatree.cpp:15:29: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   15 |     for(int r:d(0))q=x(q,r);cout<<q<<'\n';}
      |                             ^~~~