이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
const int N1=2e5+100;
int n,m,p[N1],c[N1],cnt[N1];
vector<int> sub[N1],ma[N1];
void dfs(int x)
{
sub[x].clear();
for(int&y:ma[x])
{
dfs(y);
for(int&l:sub[y])sub[x].push_back(l);
sub[x].push_back(y);
}
}
std::vector<int> beechtree(int N, int M, std::vector<int> P, std::vector<int> C)
{
n=N,m=M;
bool subtask=1;
for(int i=0;i<n;i++)p[i]=P[i],c[i]=C[i],ma[i].clear(),subtask=(subtask&((p[i]==(i-1))));
// if(subtask)
// {
// vector<int> b(n);
// map<int,int> cntp;
// for(int i=n-1;i>=0;i--)
// {
// cntp[c[i]]++;
// if(cntp.size()==1)
// {
// b[i]=1;
// }
// else if(cntp.size()==2 and min(cntp[c[i]],n-cntp[c[i]])==1)
// {
// b[i]=1;
// }
// else{
// b[i]=0;
// }
// }
// return b;
// }
// else
// {
// cout<<"Edges\n";
for(int i=1;i<n;i++)
{
// cout<<p[i]<<' '<<i<<endl;
ma[p[i]].push_back(i);
}
// cout<<"Edges\n";
dfs(0);
vector<int> b(n);
for(int i=0;i<n;i++)
{
// cout<<"COl "<<i<<' '<<c[i]<<endl;
int sz=sub[i].size();
map<int,int> cntp;
int l=-1;
for(int j=0;j<sz;j++)
{
int v=sub[i][j];
cntp[c[v]]++;
l=v;
}
if(cntp.size()==0)
{
b[i]=1;
}
else if(cntp.size()==1)
{
b[i]=1;
}
else if(cntp.size()==2 and min(cntp[c[l]],sz-cntp[c[l]])==1)
{
b[i]=1;
}
else{
b[i]=0;
}
}
return b;
// }
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |