当前位置: 代码迷 >> 综合 >> Kitchen Plates(还得再看看!)
  详细解决方案

Kitchen Plates(还得再看看!)

热度:87   发布时间:2024-03-07 00:46:52.0

太暴力了!!!!!!! !
关于next_permutation 的用法:头文件#include
https://blog.csdn.net/sgsyacm/article/details/80139089
!!!

#include <bits/stdc++.h>
#include <algorithm>
using namespace std;
string q,w,e,r,t;
bool b1,b2,b3,b4,b5;
//string a;
char a[5] = {
    'A','B','C','D','E'};
map<char,bool> mp;
int main()
{
    cin>>q>>w>>e>>r>>t;while(next_permutation(a,a+5)){
    for(int i =0;i<5;i++){
    if(q[1]=='>'){
    if(a[i]==q[0])mp[q[0]]=1;else if(a[i]==q[2])mp[q[2]]=1;if(mp[q[0]] && !mp[q[2]]) b1 = 1;else if(!mp[q[0]] && mp[q[2]])break;}else{
    if(a[i]==q[0])mp[q[0]]=1;else if(a[i]==q[2])mp[q[2]]=1;if(!mp[q[0]] && mp[q[2]]) b1 = 1;else if(mp[q[0]] && !mp[q[2]])break;}}mp.clear();for(int i =0;i<5;i++){
    if(w[1]=='>'){
    if(a[i]==w[0])mp[w[0]]=1;else if(a[i]==w[2])mp[w[2]]=1;if(mp[w[0]] && !mp[w[2]]) b2 = 1;else if(!mp[w[0]] && mp[w[2]])break;}else{
    if(a[i]==w[0])mp[w[0]]=1;else if(a[i]==w[2])mp[w[2]]=1;if(!mp[w[0]] && mp[w[2]]) b2 = 1;else if(mp[w[0]] && !mp[w[2]])break;}}mp.clear();for(int i =0;i<5;i++){
    if(e[1]=='>'){
    if(a[i]==e[0])mp[e[0]]=1;else if(a[i]==e[2])mp[e[2]]=1;if(mp[e[0]] && !mp[e[2]]) b3 = 1;else if(!mp[e[0]] && mp[e[2]])break;}else{
    if(a[i]==e[0])mp[e[0]]=1;else if(a[i]==e[2])mp[e[2]]=1;if(!mp[e[0]] && mp[e[2]]) b3 = 1;else if(mp[e[0]] && !mp[e[2]])break;}}mp.clear();for(int i =0;i<5;i++){
    if(r[1]=='>'){
    if(a[i]==r[0])mp[r[0]]=1;else if(a[i]==r[2])mp[r[2]]=1;if(mp[r[0]] && !mp[r[2]]) b4 = 1;else if(!mp[r[0]] && mp[r[2]])break;}else{
    if(a[i]==r[0])mp[r[0]]=1;else if(a[i]==r[2])mp[r[2]]=1;if(!mp[r[0]] && mp[r[2]]) b4 = 1;else if(mp[r[0]] && !mp[r[2]])break;}}mp.clear();for(int i =0;i<5;i++){
    if(t[1]=='>'){
    if(a[i]==t[0])mp[t[0]]=1;else if(a[i]==t[2])mp[t[2]]=1;if(mp[t[0]] && !mp[t[2]]) b5 = 1;else if(!mp[t[0]] && mp[t[2]])break;}else{
    if(a[i]==t[0])mp[t[0]]=1;else if(a[i]==t[2])mp[t[2]]=1;if(!mp[t[0]] && mp[t[2]]) b5 = 1;else if(mp[t[0]] && !mp[t[2]])break;}}mp.clear();if(b1 && b2 && b3 && b4 && b5){
    for(int i =4;i>=0;i--){
    cout<<a[i];}cout<<endl;return 0;}else{
    b1 = b2 = b3= b4 = b5 =0;}}cout<<"impossible"<<endl;return 0;
}