Witam serdecznie,
mam takie zadanie:
http://solve.edu.pl/contests/download_desc/2011
Mam napisany taki kod, niestety nie działa poprawnie.
Może ktoś widzi błąd i pomoże poprawić?
Ten przechodzi dwa testy z pięciu:
#include <bits/stdc++.h>
using namespace std;
vector < int > graf[ 1000001 ];
bool odw[ 1000005 ];
int tops2 = 0;
bool cohesion[ 1000005 ];
void DFS( int v )
{
odw[ v ] = true;
tops2++;
for( int i = 0; i < graf[ v ].size(); i++ )
{
if( !odw[ graf[ v ][ i ] ] )
{
DFS( graf[ v ][ i ] );
}
}
}
int main()
{
ios_base::sync_with_stdio( false );
cin.tie( 0 );
cout.tie( 0 );
int zestawy, tops, edges;
cin >> zestawy;
for( int i = 0; i < zestawy; ++i ) {
tops2 = 0;
// linia na czyszczenie wektora
cin >> tops >> edges;
for( int j = 0; j < edges; j++ )
{
int a, b;
cin >> a >> b;
graf[ a ].push_back( b );
graf[ b ].push_back( a );
}
DFS( 1 );
// cout<<tops2<<endl;
if( tops2 == tops ) {
cohesion[ i ] = true;
}
}
for( int i = 0; i < zestawy; ++i ) {
if( cohesion[ i ] ) cout << "TAK\n";
else cout << "NIE\n";
}
return 0;
}