悬关求解
查看原帖
悬关求解
637788
kimi0705楼主2023/5/28 17:26

为什么这过不了 WA #25的92

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int t, n;
bool Ans;
string s[N];
map<string, int> C;
signed main() {
    cin >> t;
    while (t--) {
        Ans = false;
        C.clear();
        cin >> n;
        for (int i = 1; i <= n; i++) cin >> s[i], C[s[i]] = i;
        for (int i = 1; i <= n; i++) {
            string *x = &s[i];
            if((*x).size() == 1) {Ans = true;break;}
            else if((*x).size() == 2) {
                string s = {(*x)[1], (*x)[0]}; 
                if(C[s]) {Ans = true; break;}
            } else if((*x).size() == 3) {
                if((*x)[0] == (*x)[2]) {Ans = true;break;}
                string s = {(*x)[2], (*x)[1], (*x)[0]};
                if(C[s]) {Ans = true;break;}
                // 012
                // 21 012
                // 012 10
                s = {(*x)[2], (*x)[1]};
                if(C[s] && C[s] < i) {Ans = true;break;}
                s = {(*x)[1], (*x)[0]};
                if(C[s] && C[s] > i) {Ans = true;break;}
            }
        }
        if(Ans) puts("YES");
        else puts("NO");
    }
}
2023/5/28 17:26
加载中...