infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Adrian Budau din August 26, 2011, 20:32:34



Titlul: 1173 Color 4
Scris de: Adrian Budau din August 26, 2011, 20:32:34
Aici puteti discuta despre problema Color 4 (http://infoarena.ro/problema/color4).

Multumim Ionut Bogdanescu (http://infoarena.ro/utilizator/swift90). pentru adaugarea ei.


Titlul: Răspuns: 1173 Color 4
Scris de: Andrei Geogescu din Octombrie 17, 2011, 12:25:12
Cod:
#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.


Titlul: Răspuns: 1173 Color 4
Scris de: Simoiu Robert din Octombrie 17, 2011, 14:39:35
Ai putea pune inainte de cod bbtagurile code si /code (cu [] fiecare).

Cod:
long ccc[25]
Aici trebuie pus 50.005 :).

Editat de moderator: Nu posta de doua ori consecutiv.


Titlul: Răspuns: 1173 Color 4
Scris de: Andrei Geogescu din Octombrie 19, 2011, 21:47:15
DA! iti multumesc
am luat 50 de pct deoarece mi'a iesit din timp, dar da...am accesat memorie nedeclarata :):D