2023 csp s第一题90分求调《悬关》(急)
  • 板块灌水区
  • 楼主KLR1203klr
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/10/24 20:05
  • 上次更新2024/10/24 20:55:49
查看原帖
2023 csp s第一题90分求调《悬关》(急)
670608
KLR1203klr楼主2024/10/24 20:05
#include<bits/stdc++.h>
using namespace std;
int n,a[10][6],ans;
bool pd(int a1,int a2,int a3,int a4,int a5){
	int c[6]={0,a1,a2,a3,a4,a5};
	for(int i=1;i<=n;i++){
		int zb[6]={0},db[6]={0};
		int num=0;
		for(int j=1;j<=5;j++){
			if(c[j]!=a[i][j]){
				num++;
				zb[num]=j;
				db[num]=c[j];
			}
		}
		if(num==0||num>2){
			return 0;
		}
		if(num==1){
			continue;
		}
		if(zb[2]!=zb[1]+1) return 0;
		bool b=0;
		if(db[2]-a[i][zb[2]]==db[1]-a[i][zb[1]]) b=1;
		if(a[i][zb[2]]<a[i][zb[1]]&&db[1]-a[i][zb[1]]+10==db[2]-a[i][zb[2]]) b=1;
		if(a[i][zb[2]]>a[i][zb[1]]&&a[i][zb[1]]-db[1]==a[i][zb[2]]-db[2]+10) b=1;
		if(a[i][zb[2]]<a[i][zb[1]]&&db[1]-a[i][zb[1]]==a[i][zb[2]]-db[2]+10) b=1;
		if(a[i][zb[2]]>a[i][zb[1]]&&a[i][zb[1]]-db[1]+10==a[i][zb[2]]-db[2]) b=1;
		if(b==0) return 0;
	}
	return 1;
}
int main(){                              
	cin>>n;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=5;j++){	
			cin>>a[i][j];
		}
	}
//	cout<<pd(0,0,1,9,3);
	for(int i=0;i<=9;i++){
		for(int j=0;j<=9;j++){
			for(int k=0;k<=9;k++){
				for(int l=0;l<=9;l++){
					for(int m=0;m<=9;m++){
						if(pd(i,j,k,l,m)){
							ans++;
							//cout<<i<<j<<k<<l<<m<<endl;
						}
					}
				}
			}
		}
	}
	cout<<ans;
	return 0;
}
2024/10/24 20:05
加载中...