Checklist
Make sure to read all of How to ask for help on a problem before asking for help.
Problem Info
Milk Measurement USACO
Question
Hi, i implemented the solution for the milk measurement problem, but i keep getting error in four test cases even though i am trying to find some error in my code since 1 hour ago. could someone please help me to find where is the error in my code?
What I’ve Tried
i am trying to find some error in my code since 1 hour ago. could someone please help me to find where is the error in my code?
My Work
#include <bits/stdc++.h> // see /general/running-code-locally
using namespace std;
using ll = long long;
using vi = vector;
#define pb push_back
#define all(x) begin(x), end(x)
#define sz(x) (int) (x).size()
using pi = pair<int,int>;
#define f first
#define s second
#define mp make_pair
void setIO(string name = “”) {
cin.tie(0)->sync_with_stdio(0); // see /general/fast-io
if (sz(name)) {
freopen((name + “.in”).c_str(), “r”, stdin); // see /general/input-output
freopen((name + “.out”).c_str(), “w”, stdout);
}
}
// changes[c][d] is the change in milk rate for cow c on day d
// rates[c][d] is the milk rate for cow c on day d
const int MAX_D = 100;
int rates[3][MAX_D+1];
int change[3][MAX_D+1];
// Is cow c the highest on day d?
bool is_highest(int c, int d){
int highest = max(max(rates[0][d], rates[1][d]), rates[2][d]);
return rates[c][d] == highest;
}
int main(void) {
setIO("measurement");
int n,dia,dif,c=0;
string vaca;
cin>>n;
for(int r=0;r<n;r++){
cin>>dia;
cin>>vaca;
cin>>dif;
if(vaca=="Bessie") change[0][dia]=dif;
if(vaca=="Elsie") change[1][dia]=dif;
if(vaca=="Mildred") change[2][dia]=dif;
}
for(int z=0;z<3;z++) rates[z][0] = 7;
bool bessie = 0;
bool elsie = 0;
bool mildred = 0;
for(int i=1;i<(101);i++){
for(int j=0;j<3;j++){
rates[j][i]= rates[j][i-1] + change[j][i];
}
if((is_highest(0,i)!=bessie) || (is_highest(1,i)!=elsie) || (is_highest(2,i)!=mildred)){
c++;
bessie=is_highest(0,i);
elsie=is_highest(1,i);
mildred=is_highest(2,i);
}
}
cout<<c<<endl;
}