Submission #981025

#TimeUsernameProblemLanguageResultExecution timeMemory
981025vjudge1참나무 (IOI23_beechtree)C++17
14 / 100
75 ms16836 KiB
#include "beechtree.h" using namespace std; #define pb push_back #include<bits/stdc++.h> #define deb(x) cout<<#x<<": "<<x<<endl; bool DFS (int N, vector<vector<int>> &sons,vector<int> &P, vector<int> &C){ if(sons[N].size()==0) return true; vector<int> st; st.pb(N); queue<int> q; for(int x: sons[N]){ q.push(x); } while(!q.empty()){ int x=q.front(); q.pop(); st.pb(x); for(int a:sons[x]){ q.push(a); } } sort(st.begin(), st.end()); do{ vector<int> colors; //colors.pb(C[st[0]]); bool works=true; for(int i=1; i<st.size(); ++i){ int cont=0; for(int x: colors){ if(x==C[st[i]]){ cont++; } } if(st[cont]!=P[st[i]]){ works=false; break; } colors.pb(C[st[i]]); } if(works){ return true; } }while(next_permutation(st.begin()+1, st.end())); return false; } vector<int> beechtree(int N, int M, vector<int> P, vector<int> C) { vector<vector<int>> sons (N); for(int i=1;i<N; ++i){ sons[P[i]].pb(i); } if(N<=8){ vector<int> ans (N,0); for(int i=0; i<N; ++i){ if(DFS(i, sons, P, C)){ ans[i]=1; } } return ans; } reverse(C.begin(), C.end()); vector<int> ans (N, 0); ans[N-1]=1; int col=C[0]; for(int i=0; i<N; ++i){ if(C[i]==col){ ans[N-i-2]=1; } else{ break; } } return ans; return {}; }

Compilation message (stderr)

beechtree.cpp: In function 'bool DFS(int, std::vector<std::vector<int> >&, std::vector<int>&, std::vector<int>&)':
beechtree.cpp:29:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |         for(int i=1; i<st.size(); ++i){
      |                      ~^~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...