spoj.pl/problems/PT07Y/
can anybody tell why am i getting wrong answer for this code? It is working correctly for all test cases in my pc.
#include<iostream>
using namespace std;
main()
{
int n,e,i,j,k,m;
while((scanf("%d",&n))!=EOF)
{
scanf("%d",&e);
if(e == n-1 && e>0)
{
bool arr[n+1][n+1],visited[n+1],connected=1;
memset(visited,0,sizeof(visited));
int stack[2*n];
for(k=0;k<e;k++)
{
scanf("%d%d",&i,&j);
arr[i][j]=arr[j][i]=true;
}
int top = -1;
stack[++top] = i;
visited[i] = true;
bool found = 0;
while(top > -1)
{
found = 0;
for(m=1; m<n+1; m++)
{
if(arr[stack[top]][m] == 1 && visited[m] != true)
{
stack[++top]=m;
visited[m] = true;
found = true;
break;
}
}
if(!found)
top--;
}
for(m=1;m<n+1;m++)
{
if(visited[m] == false)
{
connected=0;
break;
}
}
if(connected)
cout<<"YES\n";
else
cout<<"NO\n";
}
else
cout<<"NO\n";
}
}
Thanks in advance.