30pts求助
查看原帖
30pts求助
1060751
huangyuze114514楼主2024/10/11 19:57
#include<bits/stdc++.h>
using namespace std;
long long j[100005],k[100005],tf[100005],tf1[100005];
int main(){
	long long n,m,best=0,less=0;
	cin>>n>>m;
	int man=n;
	for(int i=1;i<=m;i++)cin>>j[i]>>k[i];
	for(int i=1;i<=m;i++){
		if(tf[j[i]]==0&&man!=0){
			if(tf[k[i]]==1){
				less++;
				tf[j[i]]=2;
				man--;
			}
			else{
				best++;
				tf[j[i]]=1;
				man--;
			}
		}
		if(tf[k[i]]==0&&man!=0){
			if(tf[j[i]]==1){
				less++;
				tf[k[i]]=2;
				man--;
			}
			if(tf[j[i]]==2){
				best++;
				tf[k[i]]=1;
				man--;
			}
		}
	}
	if(best>less)best+=man;
	else less+=man;
	man=n;
	long long best1=0,less1=0;
	for(int i=1;i<=m;i++){
		if(tf1[j[i]]==0&&man!=0){
			if(tf1[k[i]]==2){
				best1++;
				tf1[j[i]]=1;
				man--;
			}
			else{
				less1++;
				tf1[j[i]]=2;
				man--;
			}
		}
		if(tf1[k[i]]==0&&man!=0){
			if(tf1[j[i]]==1){
				less1++;
				tf1[k[i]]=2;
				man--;
			}
			if(tf1[j[i]]==2){
				best1++;
				tf1[k[i]]=1;
				man--;
			}
		}
	}
	if(best1>less1)best1+=man;
	else less1+=man;
	long long l[10]={0,best,less,best1,less1};
	sort(l+1,l+5);
	cout<<l[1]<<' '<<l[4];
	return 0;
}
2024/10/11 19:57
加载中...