제출 #1339458

#제출 시각아이디문제언어결과실행 시간메모리
1339458vjudge1Parametriziran (COCI19_parametriziran)C++17
0 / 110
6 ms1972 KiB
#include <bits/stdc++.h>
#define int long long
using namespace std;

map<int, int> mp;
string s[50005];
//cam gay

signed main()
{
    int i, n, m;
    cin >> n >> m;
    for (i = 1; i <= n; i++) {
        cin >> s[i];
    }
    int ans = n * (n - 1) / 2;
    for (int mask = 1; mask < (1 << m); mask++) {
        mp.clear();
        for (i = 1; i <= n; i++) {
            int nr = 0;
            for (int j = 0; j < m && nr != -1; j++) {
                if (s[i][j] == '?' && (1 << j) & mask) nr = -1;
                if (((1 << j) & mask) != 0 && s[i][j] != '?') {
                    nr = nr * 26 + s[i][j] - 'a';
                }
            }

            if (nr != -1) mp[nr]++;
        }
        int flag = 1;
        if (__builtin_popcountll(mask) % 2 == 1) flag = -1;
        for (auto [key, val] : mp) {
            ans += flag * val * (val - 1) / 2;
        }
    }
    cout << ans;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...