👤
CaNnab1s
a fost răspuns

(problema 472 de pe pbinfo)
Ce am gresit in algoritm? de ce nu imi iese?

#include
#include
using namespace std;
ifstream f("bipartit1.in");
ofstream g("bipartit1.out");

int a[16];
//

int main(){
int x,y,n,m,ok=1,i;
//n - nr de noduri, m - nr de muchii, (x,y)- capetele muchiei
f>>n>>m;
for(i=1;i<=m && ok==1; i++){
f>>x;
f>>y;
if(a[x]==a[y] && a[x]!=0){
ok==0;}
else{
if(a[x]==0 && a[y]==0)
if(x a[x]=1;
a[y]=2;
}
else{
a[x]=2;
a[y]=1;
}
else
if(a[x]==0 && a[y]!=0)
a[x]=3-a[y];
else
if( a[x]!=0 && a[y]==0)
a[y]=3-a[x];
}
}

if(ok==0)
g<<"NU";
else
g<<"DA";
g< for(i=1;i<=n;i++){
if(a[i]==a[1])
g< g< for(i=1;i<=n;i++){
if(a[i]!=a[1])
g< }
}
}


Răspuns :

using namespace std;

ifstream f("bipartit1.in");

ofstream g("bipartit1.out");

int a[16];

//

int main(){

int x,y,n,m,ok=1,i;

//n - nr de noduri, m - nr de muchii, (x,y)- capetele muchiei

f>>n>>m;

for(i=1;i<=m && ok==1; i++){

f>>x;

f>>y;

if(a[x]==a[y] && a[x]!=0){

ok==0;}

else{

if(a[x]==0 && a[y]==0)

if(x a[x]=1;

a[y]=2;

}

else{

a[x]=2;

a[y]=1;

}

else

if(a[x]==0 && a[y]!=0)

a[x]=3-a[y];

else

if( a[x]!=0 && a[y]==0)

a[y]=3-a[x];

}

}

if(ok==0)

g<<"DA";

else

g<<"NU


;

g< for(i=1;i<=n;i++){

if(a[i]==a[1])

g< g< for(i=1;i<=n;i++){

if(a[i]!=a[1])

g< }

}

}