이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <vector>
using namespace std;
struct reservoir{
int diameter = 0;
int capacity = 0;
};
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
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... |