为什么这个代码RE了?
#include<bits/stdc++.h>
#include<vector>
#include<stdlib.h>
using namespace std;
const int MAX=10000+10;
vector<int> t[MAX];
int ans=0,color[3],V[MAX];
bool is=true;
int dfs(int x){
if(V[x]==1) ++color[1];
if(V[x]==2) ++color[2];
for(int k=0;k<t[x].size();++k){
int v=t[x][k];
if(V[v]!=0){
if(V[v]==V[x]){
is=false;
return 0;
}
continue;
}
V[v]=(V[x]==1)?2:1;
dfs(v);
}
}
int main(){
int n,m;
cin>>n>>m;
memset(V,0,sizeof(V));
for(int i=1;i<=m;i++){
int a,b;
cin>>a>>b;
t[a].push_back(b);
t[b].push_back(a);
}
for(int i=1;i<=n;i++){
if(V[i]!=0){
continue;
}
V[i]=1;
color[1]=0;
color[2]=0;
dfs(i);
ans+=min(color[1],color[2]);
}
if(is){
cout<<ans;
}
else cout<<"Impossible";
return 0;
}