比赛 |
EYOI与SBOI开学欢乐赛4th |
评测结果 |
AAAAA |
题目名称 |
Cafe Stella |
最终得分 |
100 |
用户昵称 |
op_组撒头屯 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2022-09-12 20:39:57 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
char s[15][15][10];
int n,p,tot=0,num[15],cd[30];
bool ok[15]={0},qwq=0;
vector<int>v;
void dfs(int pt){
if (qwq==1)return ;
if (pt==tot+1){
for (int i=0;i<v.size();i++){
cd[v[i]]=num[i+1];
}
bool yes=0;
for (int i=2;i<=n;i++){
for (int j=2;j<=n;j++){
int now=0;
for (int k=1;k<=strlen(s[i][j]+1);k++){
now*=p;now+=cd[s[i][j][k]-'A'];
}
if (now!=cd[s[1][i][1]-'A']+cd[s[j][1][1]-'A']){
yes=1;break;
}
}
if (yes==1)break;
}
if (yes==0){
for (int i=0;i<v.size();i++){
cout<<char(v[i]+'A')<<"="<<cd[v[i]]<<" ";
}
cout<<endl<<p<<endl;
qwq=1;
}
return ;
}
for (int i=0;i<p;i++){
if (ok[i]==0){
num[pt]=i;
ok[i]=1;dfs(pt+1);
ok[i]=0;
}
}
return ;
}
int main(){
freopen ("murasame_adultxp3.in","r",stdin);
freopen ("murasame_adultxp3.out","w",stdout);
scanf("%d",&n);
bool has[30]={0};
for (int i=1;i<=n;i++){
for (int j=1;j<=n;j++){
scanf("%s",s[i][j]+1);
if (s[i][j][1]!='+'){
for (int k=1;k<=strlen(s[i][j]+1);k++){
if (has[s[i][j][k]-'A']==0){
v.push_back(s[i][j][k]-'A');tot++;
has[s[i][j][k]-'A']=1;
}
}
}
}
}
for (p=tot;p<=10;p++){
memset(ok,0,sizeof(ok));
dfs(1);
}
if (qwq==0){
cout<<"FccKcuf"<<endl;
}
return 0;
}