Submission #483929

#TimeUsernameProblemLanguageResultExecution timeMemory
483929mdubFountain (eJOI20_fountain)C++14
30 / 100
1590 ms3320 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...