admin管理员组文章数量:1331723
match
链接:
.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("in.txt", "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(),result.end());if(result.empty()) {cout<<"0"<<endl;return 0;}for(int i=0;i<9;i++) {cout<<result[0][i];if((i+1)%3==0)cout<<endl;}
}
本文标签: match
版权声明:本文标题:match 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/biancheng/1731078981a1571733.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论