PROBLEM LINK:
Contest Division 1
Contest Division 2
Contest Division 3
Contest Division 4
Setter: S.Manuj Nanthan
Tester: Harris Leung
Editorialist: Trung Dang
DIFFICULTY:
483
PREREQUISITES:
None
PROBLEM:
Alice has a bucket of water initially having W litres of water in it. The maximum capacity of the bucket is X liters.
Alice turned on the tap and the water starts flowing into the bucket at a rate of Y litres/hour. She left the tap running for exactly Z hours. Determine whether the bucket has been overflown, filled exactly, or is still left unfilled.
EXPLANATION:
The amount of water at the end is W + Y \cdot Z. We then compare this quantity to see whether it is equal to (or larger than/smaller than) X.
TIME COMPLEXITY:
Time complexity is O(1) per test case.
SOLUTION:
Preparer's Solution
#include <bits/stdc++.h>
using namespace std;
int main()
{
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
int test_cases;
cin>>test_cases;
for(int tc = 1 ; tc <= test_cases ; tc++)
{
int initial_water , capacity , flow_rate , flow_hours;
cin>>initial_water>>capacity>>flow_rate>>flow_hours;
int total_water = initial_water + (flow_hours * flow_rate);
if(total_water > capacity)
cout<<"OverFlow"<<endl;
else if(total_water == capacity)
cout<<"Filled"<<endl;
else
cout<<"UnFilled"<<endl;
}
return 0;
}
Tester's Solution
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define fi first
#define se second
ll n;
void solve(){
ll w,x,y,z;cin >> w >> x >> y >> z;
if(w+y*z>x) cout << "overflow\n";
else if(w+y*z==x) cout << "filled\n";
else cout << "unfilled\n";
}
int main(){
ios::sync_with_stdio(false);cin.tie(0);
int t;cin >> t;while(t--) solve();
}
Editorialist's Solution
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int t; cin >> t;
while (t--) {
int w, x, y, z; cin >> w >> x >> y >> z;
int tar = w + y * z;
cout << (tar == x ? "filled" : tar < x ? "unfilled" : "overflow") << '\n';
}
}