考试时敲的代码 为了抢时间就疯狂复制粘贴 枚举a了第一题
#include <iostream>
#include <cstdio>
using namespace std;
inline int getInt()
{
char ch;
while((ch=getchar())&&(ch<'0'||ch>'9'));
int x=ch-'0';
while((ch=getchar())&&ch>='0'&&ch<='9')
x=x*10+ch-'0';
return x;
}
inline void Out(int x)
{
if(x>=10)
Out(x/10);
putchar(x-x/10*10+'0');
}
struct node{
int a,b,c,d,e;
};
int n;
int ans=0;
node m[10];
bool pd(int a,int b,int c,int d,int e)
{
int num=0;
for(int i=1;i<=n;i++)
{
if((a==m[i].a&&b==m[i].b&&c==m[i].c&&d==m[i].d)||(a==m[i].a&&b==m[i].b&&c==m[i].c&&e==m[i].e)||(a==m[i].a&&b==m[i].b&&e==m[i].e&&d==m[i].d)||(a==m[i].a&&e==m[i].e&&c==m[i].c&&d==m[i].d)||(e==m[i].e&&b==m[i].b&&c==m[i].c&&d==m[i].d))
{
if(a!=m[i].a||b!=m[i].b||c!=m[i].c||d!=m[i].d||e!=m[i].e)
num++;
}
else
if((a==m[i].a&&b==m[i].b&&c==m[i].c&&((m[i].d>d&&m[i].e>e&&m[i].d-d==m[i].e-e)||(m[i].d<d&&m[i].e<e&&d-m[i].d==e-m[i].e)||(m[i].d<d&&m[i].e>e&&d-m[i].d==10+e-m[i].e)||(m[i].d>d&&m[i].e<e&&10+d-m[i].d==e-m[i].e))) || (a==m[i].a&&b==m[i].b&&e==m[i].e&&((m[i].d>d&&m[i].c>c&&m[i].d-d==m[i].c-c)||(m[i].d<d&&m[i].c<c&&d-m[i].d==c-m[i].c)||(m[i].d<d&&m[i].c>c&&d-m[i].d==10+c-m[i].c)||(m[i].d>d&&m[i].c<c&&10+d-m[i].d==c-m[i].c))) || (a==m[i].a&&d==m[i].d&&e==m[i].e&&((m[i].b>b&&m[i].c>c&&m[i].b-b==m[i].c-c)||(m[i].b<b&&m[i].c<c&&b-m[i].b==c-m[i].c)||(m[i].b<b&&m[i].c>c&&b-m[i].b==10+c-m[i].c)||(m[i].b>b&&m[i].c<c&&10+b-m[i].b==c-m[i].c))) || (c==m[i].c&&d==m[i].d&&e==m[i].e&&((m[i].b>b&&m[i].a>a&&m[i].b-b==m[i].a-a)||(m[i].b<b&&m[i].a<a&&b-m[i].b==a-m[i].a)||(m[i].b<b&&m[i].a>a&&b-m[i].b==10+a-m[i].a)||(m[i].b>b&&m[i].a<a&&10+b-m[i].b==a-m[i].a))))
num++;
}
if(num==n)
return 1;
else
return 0;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>m[i].a>>m[i].b>>m[i].c>>m[i].d>>m[i].e;
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 g=0;g<=9;g++)
if(pd(i,j,k,l,g))
ans++;
cout<<ans;
return 0;
}