为啥才50分,感觉写的很对啊
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define PII pair<int,int>
#define cy cout<<"YES"<<endl
#define cn cout<<"NO"<<endl
const int N=3e5+6,yyx=1e9+7;
int n,m,a[N],pre[N],cl[N];
vector<int> to[N];
vector<int> t1,t2;
int tosat(){
int flag=0;
for(int i=1;i<=n;++i){
if(!cl[i]){
queue<PII> q;
q.push({i,1});
while(q.size()){
auto[c,ty]=q.front();q.pop();
if(cl[c]==3-ty) flag=1;
if(cl[c]) continue;
cl[c]=ty;
if(ty==1) t1.push_back(c);
if(ty==2) t2.push_back(c);
for(auto v:to[c]) q.push({v,3-ty});
}
}
}
return flag;
}
void solve(){
cin>>n>>m;
for(int i=1;i<=m;++i){
int u,v;cin>>u>>v;
to[u].push_back(v);
to[v].push_back(u);
}
tosat();
int x=t1.size(),y=t2.size();
cout<<min(x,y)<<" "<<max(x,y)<<endl;
}
signed main(){
cin.tie(0)->sync_with_stdio(0);
int t=1;
//cin>>t;
while(t--)
solve();
return 0;
}