.php?id=3639
题目描述
小 x 在解说 F7 决赛时的搭档是韩乔生,以至于小 x 没有任何能说上话的机会。无聊的他玩起了填字游戏。一个 3*3 的九宫格里,每个格子里都被填上了一个字母,从而我们得到了 6 个单词。现在,小 x 随手写了 6 个单词,他想让你帮他找到一种填字母的方案,使得这 6 个单词都出现在了九宫格里。
输入
共六行,每行一个长度为 3 的单词(全部大写)。
输出
如果找不到方案,输出“0”(不包含引号)
如果能找到,输出包含 3 行,第 i 行对应九宫格的第 i 行(最后一行行末要换行)。
如果有多种方案,请输出每种方案对应的字符串中字典序最前的一种(将行与行首尾相连,就可以得到一个字符串)。
样例输入
ANA
ANA
DAR
DAR
RAD
RAD
样例输出
DAR
ANA
RAD
直接枚举每一种可能,暴力判断就可以。
#include <iostream>
#include <algorithm>
#include <set>
#include <string>
#include <vector>
#include <queue>
#include <map>
#include <stack>
#include <functional>
#include <sstream>
#include <iomanip>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <climits>
#include <cctype>
using namespace std;
vector<string> result;
int main() {
#ifndef ONLINE_JUDGEfreopen(", "r", stdin);
#endifios_base::sync_with_stdio(false);cin.tie(0);string a[10];for(int i=0;i<6;i++) cin>>a[i];string x;int book[6]={0,1,2,3,4,5};do{x=a[book[0]]+a[book[1]]+a[book[2]];if(x[0]!=a[book[3]][0]||x[3]!=a[book[3]][1]||x[6]!=a[book[3]][2])continue;if(x[1]!=a[book[4]][0]||x[4]!=a[book[4]][1]||x[7]!=a[book[4]][2])continue;if(x[2]!=a[book[5]][0]||x[5]!=a[book[5]][1]||x[8]!=a[book[5]][2])continue;result.push_back(x);}while(next_permutation(book,book+6));sort(result.begin(),d());pty()) {cout<<"0"<<endl;return 0;}for(int i=0;i<9;i++) {cout<<result[0][i];if((i+1)%3==0)cout<<endl;}
}
本文发布于:2024-02-05 09:29:15,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170728707265304.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |