Why is USACO Bronze so ridiculously hard

Come on. An exponential function has its uses, but it shouldn’t be used to determine what difficulty to make your entry-level contest.

Even last season, the problems were of arguably reasonable difficulty. And here we are in Dec 2021. Are these problems going to keep getting harder? Why? Pretty soon we’ll be asked to write code for the US Missile Defense System. Forgive my stupidity, but no matter how many problems I do or how many guides I read, my skillset never catches up to the accelerating difficulty of these contests.

2 Likes

I don’t know if they are getting harder - I’ve only participated once - but I was able to get close to promotion - literally one testcase away - I got 670 points, while the cutoff is 700. And the issue was that I wasn’t able to debug my code in time, and that the sample testcases were fairly unhelpful. And also, it said that ~1,500 people were promoted, so…

1 Like

I should be asking this about the same question about silver and gold division :stuck_out_tongue:.

2 Likes

They have to get harder b/c more people are taking these contests.

1 Like

At first I thought that the december contest was just a fluke, but now after the january contest, I do think that the contests are getting harder. Both of them had at least one “no constraints” testcase that I believe required a different concept to solve, which I still can’t understand, even after looking at the official solution. On a different note, I hope that somebody got promoted this time!

I found bronze problem 1 and 3 super easy in January 2022. I just couldn’t wrap my head around problem 2

I know, me too. I figured it out eventually. Happily, I think I shall be promoted.

Problem #3 is Drought, right? I wasn’t able to get the last “no constraints” test case, were you? If you figured it out, can you tell me the concept (and language) you used to solve it? I would wait until the results and official solutions are out, but I’m too impatient.

Really? Can you explain 3?

Anyways 2 you were able to solve via brute force. I made a method to check if one die was more likely to win against another die (I went through all 16 possibilities for each test case) and made two separate if statements for if the first die beat the second die and if the second die beat the first. I then just generated numbers starting from 1111 to 9999 and checked to see if it met the requirements. Apparently that was fast enough.

I tried to greedy algorithm #3 but I couldn’t get it to work and it kept timing out (damn the sub test cases).

1 Like

LOL, I never considered brute force for number 2. As you guessed Number 3 was Greedy, so what I did was I checked pairs of 3 cows at a time. Since if you have 2 cows with different hunger levels, you can never feed both of them to reach the same hunger level. So instead you looked at the second and third cow and tried to match the 2nd cow with the first cow. However assuming this you must never change the hunger level of the first cow. The only case in which you can equal the 2nd cow’s hunger level to the first cow(if it is not equal already). Is if the hunger level of the 2nd cow is greater than the first cow. So you do this for all the possible sets of 3 cows. However then you might have a case like 4422(The numbers represent the hunger levels of the cows) or 488. So then you have to find the minimum of the list. And loop through all the pairs of 2 cows and if both cows are equal to each other but greater than the minimum reduce it to the minimum. One Last Step !!! Now check if each pair of two cows are equal so a case like 435 would fail or if any cow has been reduced to a hunger level below 0. If that’s the case output -1. I used python so I wouldn’t have to worry about longs etc

1 Like

I used python

If you want I can share my code I used replit

Yeah if you can that would be great! It sounds like we did similar things to solve it, I guess yours was more streamlined. I don’t know if you want to know what I did, but it’s linked here.

Here is my code for Drought, perhaps not the best solution but it worked for all 15 test cases.

2 Likes

USACO Bronze in general is hard to pass first time these days. I’d say getting the algorithm and steps in most of the problems isn’t too bad. Make sure you’re using pencil and paper to solve for the algorithm. My problem is implementation, if you can get implementation down, you’re in a better place than most Bronzes. In general, Bronze is going to get harder and harder, especially with trends in computing going up. So try your best to accelerate.

USACO Bronze requires an excellent level of basic understanding of functions and algorithms, whereas other levels require both understanding and experience with the OI system. Because of the increasing number of contestants, the level of the contest needs to be increased so overall it remains at a good level-Not being too hard or easy. It is pretty hard nowadays tho😡