📄 usaco_crypt1.cpp
字号:
/*
ID:wangyuc2
PROG:crypt1
LANG:C++
*/
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("crypt1.in");
ofstream fout("crypt1.out");
int p[9],num;
inline bool checked(int tt)
{
int i;
bool f=false;
for(i=0;i<num;i++) if(p[i]==tt) {f=true;break;}
return f;
}
int main()
{
int i,j,k,m,n,count=0;
fin>>num;
for(i=0;i<num;i++) fin>>p[i];
// sort(p,p+num);
// for(i=0;i<num;i++) cout<<p[i]<<' ';
for(i=0;i<num;i++)
for(j=0;j<num;j++)
for(k=0;k<num;k++)
for(m=0;m<num;m++)
for(n=0;n<num;n++)
{
if(p[i]*p[m]<10 && p[n]*p[i]<10)
{
int x1=0,x2=0,x3=0,y1=0,y2=0,y3=0,t1=0,t2=0,t3=0,t4=0;
x3=p[k]*p[n]; if(x3>=10) {x2+=x3/10; x3=x3%10;}
if(!checked(x3)) continue;
x2+=p[j]*p[n]; if(x2>=10) {x1+=x2/10; x2=x2%10;}
if(!checked(x2)) continue;
x1+=p[i]*p[n]; if(x1>=10 || !checked(x1)) continue;
y3=p[k]*p[m]; if(y3>=10) {y2+=y3/10; y3=y3%10;}
if(!checked(y3)) continue;
y2+=p[j]*p[m]; if(y2>=10) {y1+=y2/10; y2=y2%10;}
if(!checked(y2)) continue;
y1+=p[i]*p[m]; if(y1>=10 || !checked(y1)) continue;
t3=x2+y3; if(t3>=10) {t2+=t3/10; t3=t3%10;}
if(!checked(t3)) continue;
t2+=x1+y2; if(t2>=10) {t1+=t2/10; t2=t2%10;}
if(!checked(t2)) continue;
t1+=y1; if(t1>=10 || !checked(t1)) continue;
count++;
}
}
fout<<count<<endl;
fin.close();
fout.close();
// system("PAUSE");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -