请帮忙调代码,谢谢
查看原帖
请帮忙调代码,谢谢
363006
wangyibo201026楼主2022/7/6 22:44
#include<bits/stdc++.h>

#define endl '\n';
#define int long long

using namespace std;

const int N = 50;

string s[10];
int len[10], n, m;

char ans[N][N];

void Solve(){
  int n = 6;
  for(int i = 1; i <= n; i++){
    cin >> s[i];
    len[i] = s[i].size();
    s[i] = " " + s[i];
  }
  for(int a1 = 1; a1 <= n; a1++){
    for(int a2 = 1; a2 <= n; a2++){
      if(a2 != a1){
        for(int a3 = 1; a3 <= n; a3++){
          if(a3 != a2 && a3 != a1){
            for(int a4 = 1; a4 <= n; a4++){
              if(a4 != a3 && a4 != a2 && a4 != a1){
                for(int a5 = 1; a5 <= n; a5++){
                  if(a5 != a4 && a5 != a3 && a5 != a2 && a5 != a1){
                    for(int a6 = 1; a6 <= n; a6++){
                      if(a6 != a5 && a6 != a4 && a6 != a3 && a6 != a2 && a6 != a1){
                        if(len[a2] + len[a6] == len[a4] && len[a1] + len[a5] == len[a3]){
                          if(s[a1][1] == s[a2][1] && s[a1][len[a1]] == s[a4][1] && s[a2][len[a2]] == s[a3][1] && s[a4][len[a2]] == s[a3][len[a1]] && s[a3][len[a3]] == s[a6][1] && s[a4][len[a4]] == s[a5][1] && s[a6][len[a6]] == s[a5][len[a5]]){
                            int n = len[a4], m = len[a3];
                            for(int i = 1; i <= len[a1]; i++){
                              ans[1][i] = s[a1][i];
                            }
                            for(int i = 1; i <= len[a2]; i++){
                              ans[i][1] = s[a2][i];
                            }
                            for(int i = 1; i <= len[a4]; i++){
                              ans[i][len[a1]] = s[a4][i];
                            }
                            for(int i = 1; i <= len[a3]; i++){
                              ans[len[a2]][i] = s[a3][i];
                            }
                            for(int i = len[a2] + 1; i <= len[a4]; i++){
                              ans[i][m] = s[a6][i - len[a2]];
                            }
                            for(int i = len[a1] + 1; i <= len[a3]; i++){
                              ans[n][i] = s[a5][i - len[a1]];
                            }
                            for(int i = 1; i <= n; i++){
                              for(int j = 1; j <= m; j++){
                                if(ans[i][j] == ' '){
                                  ans[i][j] = '.';
                                }
                              }
                            }
                            for(int i = 1; i <= n; i++){
                              for(int j = 1; j <= m; j++){
                                cout << ans[i][j];
                              }
                              cout << endl;
                            }
                            return ;  
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

signed main(){
  Solve();
  return 0;
}

这题代码比线段树都恶心,太恶臭了。

2022/7/6 22:44
加载中...