This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <vector>
using namespace std;
struct reservoir{
int diameter = 0;
int capacity = 0;
};
int main() {
int numReservoirs, numQueries;
cin >> numReservoirs >> numQueries;
vector<reservoir> fountain(numReservoirs);
for (int i = 0; i < numReservoirs; i++) {
cin >> fountain[i].diameter >> fountain[i].capacity;
}
int iReservoir, numLiters, iLastReservoir;
bool overflow = false;
for (int i = 0; i < numQueries; i++) {
overflow = false;
cin >> iReservoir >> numLiters;
iReservoir--;
iLastReservoir = iReservoir;
numLiters -= fountain[iReservoir].capacity;
iReservoir++;
if (numLiters <= 0) {
iReservoir--;
}
while (numLiters > 0) {
//cout << "iReservoir: " << iReservoir << " " << "numLiters: " << numLiters << " ";
if (iReservoir == numReservoirs) {
overflow = true;
break;
}
else if (fountain[iReservoir].diameter > fountain[iLastReservoir].diameter) {
//cout << fountain[iReservoir].diameter << "bigger than " << fountain[iLastReservoir].diameter << " ";
numLiters -= fountain[iReservoir].capacity;
if (numLiters <= 0) {
break;
}
iLastReservoir = iReservoir;
}
iReservoir++;
}
if (overflow) {
cout << 0 << "\n";
}
else cout << ++iReservoir << "\n";
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |