#include<fstream>
#include<vector>
//|--|-| |-| |--|_| =
using namespace std;
vector<vector<long> > v(50000),vv(50000);
long k[50000];
long maxim=-2,gh=1;
void create(long x,long y)
{long i,size;
size=v[x].size();
for(i=size-1;i>=0;i--)
if(v[x][i]!=y)
{vv[x].push_back(v[x][i]);
create(v[x][i],x);
v[x].pop_back();}
else
v[x].pop_back();}
long ccc[25];
void asdass(long x,long y)
{for(long i=0;i<vv[x].size();i++)
{ccc[vv[x][i]]=y;
asdass(vv[x][i],y);}}
void asdass1(long x)
{for(long i=0;i<vv[x].size();i++)
{k[ccc[vv[x][i]]]=k[ccc[vv[x][i]]]+1;
if(k[ccc[vv[x][i]]]>maxim)
{maxim=k[ccc[vv[x][i]]];
if(ccc[vv[x][i]]==0)
gh=1;
else
gh=ccc[vv[x][i]];}
asdass1(vv[x][i]);}}
int main()
{ifstream f("color4.in");
ofstream h("color4.out");
long n,m,c,x,y,i,j,a,b,cc;
f>>n>>m>>c;
for(i=1;i<n;i++)
{f>>x>>y;
v[x].push_back(y);
v[y].push_back(x);}
create(1,1);
for(i=1;i<=m;i++)
{f>>cc;
if(cc==0)
{f>>a>>b;
ccc[a]=b;
asdass(a,b);}
else
{f>>a;
for(j=1;j<=c;j++)
k[j]=0;
maxim=-2;
k[ccc[a]]=1;
asdass1(a);
h<<gh<<" "<<maxim<<"\n";}}
return 0;}
ma poate ajuta cineva spunandu'mi de ce imi da killed by signal 11 ;excluzand primul test?
(nu cred ca acceseaza memorie in afara vectorului sau depaseste limita de memorie...sau?)
Editat de admin: Folosește tagurile "code" atunci cînd postezi surse.