Submission #850013

#TimeUsernameProblemLanguageResultExecution timeMemory
850013KK_1729Fountain (eJOI20_fountain)C++14
30 / 100
58 ms6224 KiB
#include <bits/stdc++.h> using namespace std; // -------Macros--------- #define int long long #define double long long double #define pb push_back #define str string #define vi vector<int> #define mp make_pair #define mi map<int, int> #define umi unordered_map<int, int> #define FOR(i,a,b) for (int i = (a); i < (b); ++i) #define all(a) a.begin(), a.end() #define endl "\n" // ------------------------ // --------------------------Constants------------------------------ const int INF = 1e17; const int MOD = 1e9+7; const int MOD2 = 998244353; // const long long double PI = 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679; // ------------------------------------------------------------------- // ----------------------Pre Written Functions--------------------------- int sum(vector<int> a){ // Returns the sum of values in a vector<int> int total = 0; for (int x : a) total += x; return total; } template<typename T> void printVector(T a){ // cout << "[ "; for (auto x: a) cout << x << " "; cout << endl; } template<typename T> void printMap(T a){ cout << "{ "; for (auto x: a){ cout << x.first << ": " << x.second << " "; } cout << "}" << endl; } int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); } // Function to return LCM of two numbers int lcm(int a, int b) { return (a / gcd(a, b)) * b; } // ------------------------------------------------------------------------ vi decToBinary(int n) { // array to store binary number vi binaryNum(100); // counter for binary array int i = 0; while (n > 0) { // storing remainder in binary array binaryNum[i] = n % 2; n = n / 2; i++; } return binaryNum; } int ceildiv(int x, int y){ return (x+y-1)/y; } int min_element(vi a){ int m = 10000000000000; for (auto x: a){ m = min(m, x); } return m; } int max_element(vi a){ int m = -1; for (auto x: a){ m = max(m, x); } return m; } void solve(){ int n, q; cin >> n >> q; vector<int> d(n), c(n); FOR(i,0,n) cin >> d[i] >> c[i]; vector<int> prefix(n); prefix[0] = c[0]; FOR(i,1,n) prefix[i] = prefix[i-1]+c[i]; while (q--){ int r, v; cin >> r >> v; r--; int index = 0; if (r) index = lower_bound(prefix.begin(), prefix.end(), prefix[r-1]+v) - prefix.begin(); else index = lower_bound(prefix.begin(), prefix.end(), v) - prefix.begin(); cout << index+1 << endl; } } int32_t main(){ // FastIO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); // freopen("input.txt", "r", stdin); // freopen("output.txt", "w", stdout); // int t; cin >> t; int t = 1; for (int tc = 1; tc <= t; ++tc){ // cout << "Case #" << tc << ": "; solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...