80分求调
查看原帖
80分求调
1298242
wangzhongqian楼主2024/4/5 15:25
#include<bits/stdc++.h>
using namespace std;
int n,s[10][10],qwe=0;
bool check(int a,int b,int c,int d,int e){
	for(int i=1;i<=n;++i){
		int ans=0;
		if(a==s[i][1]) ++ans;
		if(b==s[i][2]) ++ans;
		if(c==s[i][3]) ++ans;
		if(d==s[i][4]) ++ans;
		if(e==s[i][5]) ++ans;
		if(ans!=3&&ans!=4) return 0;
	}
	for(int i=1;i<=n;++i){
		int ans=0;
		if(a==s[i][1]) ++ans;
		if(b==s[i][2]) ++ans;
		if(c==s[i][3]) ++ans;
		if(d==s[i][4]) ++ans;
		if(e==s[i][5]) ++ans;
		if(ans==3){
			vector<int>x;
			if(a!=s[i][1]) x.push_back(a-s[i][1]);
			if(b!=s[i][2]) x.push_back(b-s[i][2]);
			if(c!=s[i][3]) x.push_back(c-s[i][3]);
			if(d!=s[i][4]) x.push_back(d-s[i][4]);
			if(e!=s[i][5]) x.push_back(e-s[i][5]);
			if(x[0]!=x[1]) return 0;
		}
	}
	for(int i=1;i<=n;i++){
		int ans=0;
		if(a==s[i][1]) ++ans;
		if(b==s[i][2]) ++ans;
		if(c==s[i][3]) ++ans;
		if(d==s[i][4]) ++ans;
		if(e==s[i][5]) ++ans;
		if(ans==3){
			vector<int> w;
			if(a!=s[i][1]) w.push_back(1);
			if(b!=s[i][2]) w.push_back(2);
			if(c!=s[i][3]) w.push_back(3);
			if(d!=s[i][4]) w.push_back(4);
			if(e!=s[i][5]) w.push_back(5);
			if(!(w[0]-1==w[1]||w[1]-1==w[0])) return 0;
		}
	}
	return 1;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){cin>>s[i][1]>>s[i][2]>>s[i][3]>>s[i][4]>>s[i][5];}
	if(n==1){cout<<81;return 0;}
	for(int a=0;a<=9;++a){
		for(int b=0;b<=9;++b){
			for(int c=0;c<=9;++c){
				for(int d=0;d<=9;++d){
					for(int e=0;e<=9;++e){
						if(check(a,b,c,d,e)) ++qwe;
					}
				}
			}
		}
	}
	cout<<qwe;
	return 0;
}
2024/4/5 15:25
加载中...