Submission #465274

#TimeUsernameProblemLanguageResultExecution timeMemory
465274CyberCowFountain (eJOI20_fountain)C++17
60 / 100
98 ms5236 KiB
#include <iostream> #include <algorithm> #include <vector> #include <queue> #include <set> #include <string> #include <cmath> #include <map> #include <unordered_map> #include <fstream> #include <iomanip> #include <iterator> #include <stack> using namespace std; using ll = long long; int d[100005], c[100005], pref[100005]; int main() { ios_base::sync_with_stdio(false); cin.tie(0); int n, q, i, j; cin >> n >> q; for ( i = 0; i < n; i++) { cin >> d[i] >> c[i]; } if (n <= 1000) { for (i = 0; i < q; i++) { int x, y; cin >> x >> y; x--; j = x; y -= c[j]; int g = 1; while (j >= 0 && y > 0) { int h = j + 1; while (h < n && d[j] >= d[h]) { h++; } if (h >= n) { g = 0; break; } j = h; y -= c[j]; } if (g) cout << j + 1 << '\n'; else cout << 0 << '\n'; } } else { pref[1] = c[0]; for ( i = 1; i < n; i++) { pref[i + 1] = pref[i] + c[i]; } pref[n] = 1000000000; for ( i = 0; i < q; i++) { int x, y; cin >> x >> y; int ind = lower_bound(pref + 1, pref + n + 2, pref[x - 1] + y) - pref; if (ind == n) cout << 0 << '\n'; else cout << ind << '\n'; } } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...