제출 #244865

#제출 시각아이디문제언어결과실행 시간메모리
244865NONAMERima (COCI17_rima)C++14
14 / 140
1096 ms19164 KiB
#include <bits/stdc++.h>
#define dbg(x) cerr << #x << " = " << x << "\n"
#define fast_io ios_base::sync_with_stdio(0); cin.tie(0); cout.tie()
using namespace std;
using ll = long long;

const int N = 5e5 + 10;

int n, f[N];
string s[N];

int main() {
    fast_io;

    cin >> n;
    for (int i = 0; i < n; ++i)
        cin >> s[i];

    int ans = 0;

    for (int msk = 0; msk < (1 << n); ++msk) {
        string t = "";
        bool gd = 1;

        for (int i = 0; i < n; ++i) {
            if (!(msk & (1 << i)))
                continue;

            if (t == "") {
                t = s[i];
                continue;
            }

            int l1 = int(s[i].size()) - 1, l2 = int(t.size()) - 1, k = 0;
            while (l1 >= 0 && l2 >= 0) {
                if (s[i][l1] != t[l2])
                    break;

                --l1, --l2;
                ++k;
            }

            if (k < max(int(s[i].size()) - 1, int(t.size()) - 1))
                gd = 0;
        }

        if (gd)
            ans = max(ans, __builtin_popcount(msk));
    }

    cout << ans << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...