AcWing 1875. 贝茜的报复
原题链接
简单
作者:
Agoni7z
,
2024-04-08 15:00:20
,
所有人可见
,
阅读 7
#include "bits/stdc++.h"
#define int long long
using namespace std;
const int N = 150;
int a[8][2];
signed main(void) {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
char c;
int x;
cin >> c >> x;
if (c == 'B') a[1][((x % 2) + 2) % 2]++;
if (c == 'E') a[2][((x % 2) + 2) % 2]++;
if (c == 'S') a[3][((x % 2) + 2) % 2]++;
if (c == 'I') a[4][((x % 2) + 2) % 2]++;
if (c == 'G') a[5][((x % 2) + 2) % 2]++;
if (c == 'O') a[6][((x % 2) + 2) % 2]++;
if (c == 'M') a[7][((x % 2) + 2) % 2]++;
}
int sum = 1;
for (int i = 1; i <= 7; i++) {
sum *= (a[i][0] + a[i][1]);
}
// cout << sum << '\n';
int sumBI = (a[1][0] * a[4][1]) + (a[1][1] * a[4][0]);
int dd = 0;
dd += (a[2][1] * a[3][0] * a[5][0] * a[6][0]);
dd += (a[2][0] * a[3][1] * a[5][0] * a[6][0]);
dd += (a[2][0] * a[3][0] * a[5][1] * a[6][0]);
dd += (a[2][0] * a[3][0] * a[5][0] * a[6][1]);
dd += (a[2][0] * a[3][1] * a[5][1] * a[6][1]);
dd += (a[2][1] * a[3][0] * a[5][1] * a[6][1]);
dd += (a[2][1] * a[3][1] * a[5][0] * a[6][1]);
dd += (a[2][1] * a[3][1] * a[5][1] * a[6][0]);
sumBI *= dd;
sumBI *= a[7][1];
cout << sum - sumBI << '\n';
return 0;
}