社区讨论
求调
P9752[CSP-S 2023] 密码锁参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @m2g51sbh
- 此快照首次捕获于
- 2024/10/19 20:31 去年
- 此快照最后确认于
- 2025/11/04 16:47 4 个月前
30pts
C#include<bits/stdc++.h>
using namespace std;
int n,a[10][6],q[100005][6],h[100005][6],p,c,s;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=5;j++)
{
cin>>a[i][j];
}
}
if(n==1)
{
cout<<"81";
return 0;
}
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++)
{
p++;
q[p][1]=i;
q[p][2]=j;
q[p][3]=k;
q[p][4]=l;
q[p][5]=m;
}
}
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=5;j++)
{
bool flag=0;
if(a[i][j]==9)
{
if(q[i][j]==0||q[i][j]==8)
{
for(int k=2;k<=5;k++)
{
if(q[i][k]!=a[i][k])flag=1;
}
}
else flag=1;
}
else if(a[i][j]==0)
{
if(q[i][j]==1||q[i][j]==9)
{
for(int k=2;k<=5;k++)
{
if(q[i][k]!=a[i][k])flag=1;
}
}
else flag=1;
}
else if(q[i][j]==a[i][j]+1||q[i][j]==a[i][j]-1)
{
for(int k=2;k<=5;k++)
{
if(q[i][k]!=a[i][k])flag=1;
}
}
for(int k=1;k<=c;k++)
{
for(int l=1;l<=5;l++)
{
if(q[i][l]==a[k][l])flag=1;
}
}
if(flag==0)
{
s++;
c++;
int v=0;
h[c][v++]=q[i][v];
h[c][v++]=q[i][v];
h[c][v++]=q[i][v];
h[c][v++]=q[i][v];
h[c][v++]=q[i][v];
}
}
}
c=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=4;j++)
{
int k=j+1;
bool flag=0;
if(a[i][j]==9&&a[i][k]==9)
{
if((q[i][j]==0||q[i][j]==8)&&(q[i][k]==0||q[i][k]==8))
{
for(int l=3;l<=5;l++)
{
if(q[i][l]!=a[i][l])flag=1;
}
}
else flag=1;
}
else if(a[i][j]==0&&a[i][k]==0)
{
if((q[i][j]==1||q[i][j]==9)&&(q[i][k]==1||q[i][k]==9))
{
for(int l=3;l<=5;l++)
{
if(q[i][l]!=a[i][l])flag=1;
}
}
else flag=1;
}
else if((q[i][j]==a[i][j]+1||q[i][j]==a[i][j]-1)&&(q[i][k]==a[i][k]+1||q[i][k]==a[i][k]-1))
{
for(int l=3;l<=5;l++)
{
if(q[i][l]!=a[i][l])flag=1;
}
}
for(int l=1;l<=c;l++)
{
for(int m=1;m<=5;m++)
{
if(q[i][m]==a[l][m])flag=1;
}
}
if(flag==0)
{
s++;
c++;
int v=0;
h[c][v++]=q[i][v];
h[c][v++]=q[i][v];
h[c][v++]=q[i][v];
h[c][v++]=q[i][v];
h[c][v++]=q[i][v];
}
}
}
cout<<s;
return 0;
}
回复
共 1 条回复,欢迎继续交流。
正在加载回复...