比赛 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;
}