Problem Info
USACO 2015 US Open Bronze: 2. Bessie Gets Even
My code only passes case 1, 2, and 3.
My Work
#include <iostream> // the ide.usaco.guide automatically does <bits/std++.h>
using namespace std;
int main(){
freopen("geteven.in", "r", stdin);
freopen("geteven.out", "w", stdout);
int v[90][2];
for (int i = 0; i < 90; i++) v[i][0] = 0, v[i][1] = 0;
// initialize all values to zero
int n; cin >> n;
for (int i = 0; i < n; i++){
char c; cin >> c;
int t; cin >> t;
v[c][t%2]++; // 0 is even, 1 is odd
}
long long ans = 0;
//go through each even/odd possibility
for (int b = 0; b < 2; b++) for (int e = 0; e < 2; e++)
for (int s = 0; s < 2; s++) for (int i = 0; i < 2; i++)
for (int g = 0; g < 2; g++) for (int o = 0; o < 2; o++)
for (int m = 0; m < 2; m++)
if ( ((b+e+s+s+i+e)*(g+o+e+s)*(m+o+o))%2 == 0)
ans += v['B'][b]*v['E'][e]*v['S'][s]*v['I'][i]*v['G'][g]*v['O'][o]*v['M'][m];
cout << ans << "\n";
return 0;
}
The code I used is practically the same as the official solution.
What I’ve Tried
The test data is too large on the ones I’m failing on (n=140) to model by hand, and I haven’t been able to input a smaller testcase that fails. I’ve also updated my code to align with the tips @BongoCoder gave - Thanks! … But it still doesn’t work.