UVa12478 - Hardest Problem Ever (枚举)

来源:互联网 发布:怎么销毁淘宝账号 编辑:程序博客网 时间:2024/04/28 21:33
#include <cstdio>#include <string>#include <algorithm>using namespace std;const int N = 9;char table[N][N] = {   {'O', 'B', 'I', 'D', 'A', 'I', 'B', 'K', 'R'},   {'R', 'K', 'A', 'U', 'L', 'H', 'I', 'S', 'P'},   {'S', 'A', 'D', 'I', 'Y', 'A', 'N', 'N', 'O'},   {'H', 'E', 'I', 'S', 'A', 'W', 'H', 'I', 'A'},   {'I', 'R', 'A', 'K', 'I', 'B', 'U', 'L', 'S'},   {'M', 'F', 'B', 'I', 'N', 'T', 'R', 'N', 'O'},   {'U', 'T', 'O', 'Y', 'Z', 'I', 'F', 'A', 'H'},   {'L', 'E', 'B', 'S', 'Y', 'N', 'U', 'N', 'E'},   {'E', 'M', 'O', 'T', 'I', 'O', 'N', 'A', 'L'}   };   string str[8] = {"RAKIBUL", "ANINDYA", "MOSHIUR", "SHIPLU", "KABIR", "SUNNY", "OBAIDA", "WASI"};int main(){for (int i = 0; i < 8; i++) {string strtmp = str[i];sort(strtmp.begin(), strtmp.end());int len = str[i].length();int cnt = 0;for (int j = 0; j < N; j++) {string tmp;for (int k = 0; k + len <= N; k++) {tmp.clear();for (int m = 0; m < len; m++) {tmp.append(1, table[j][k + m]);}sort(tmp.begin(), tmp.end());if (tmp == strtmp) cnt++;}}for (int j = 0; j < N; j++) {string tmp;for (int k = 0; k + len <= N; k++) {tmp.clear();for (int m = 0; m < len; m++) {tmp.append(1, table[k + m][j]);}sort(tmp.begin(), tmp.end());if (tmp == strtmp) cnt++;}}if (cnt == 2) printf("%s\n", str[i].c_str());}return 0;}

0 0
原创粉丝点击