萌新70求助
查看原帖
萌新70求助
977890
nanami0721楼主2024/10/17 17:25

第4,8,10测试点错了

#include<bits/stdc++.h>
using namespace std;
int n,a[10][10],ans=81,k=0,b[10][10],z=0,y=0;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=0;j<=4;j++){
			cin>>a[i][j];
		}
	}
	if(n==1){
		cout<<81;
		return 0;
	}
	for(int i=1;i<n;i++){
		for(int j=i+1;j<=n;j++){
			k=0;
			for(int m=0;m<=5;m++){
				for(int u=0;u<=5;u++){
					b[m][u]=0;
				}
			}
			for(int q=0;q<=4;q++){
				if(a[i][q]!=a[j][q]&&b[i][q]==0&&b[j][q]==0){
					if(a[i][q+1]==a[j][q+1]){
						k++;
					}
					else if(a[i][q+1]-a[i][q]==a[j][q+1]-a[j][q]){
						k++;
						b[i][q+1]=-1;
						b[j][q+1]=-1;
					}
					else{
						k+=2;
					}
				}
			}
			if(k==2){
				ans=min(ans,2);
				z=1;
			}
			else if(k==1){
				 y=1;
				ans=min(ans,10-n);
			}
			else if(k==0){
				ans=min(ans,81);
			}
			else{
				ans=0;
			}
		}
	}
	if(y&&z){
		ans=min(ans,1);
	}
	cout<<ans;
	
}
2024/10/17 17:25
加载中...