Submission #633713

#TimeUsernameProblemLanguageResultExecution timeMemory
633713Ferid20072020Fountain (eJOI20_fountain)C++17
30 / 100
82 ms4888 KiB
#pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; using namespace std; using namespace chrono; //using namespace atcoder #define YES cout << "YES\n" #define NO cout << "NO\n" #define vi vector<int> #define vl vector<long long> #define vs vector<string> #define vc vector<char> #define vd vector<double> #define vld vector<long double> #define ll long long #define ull unsigned long long #define ui unsigned int #define ld long double #define f first #define s second #define pii pair<int , int> #define pll pair<ll , ll> #define pil pair<int , ll> #define pli pair<ll , int> #define psi pair<string , int> #define pci pair<char , int> #define pic pair<int , char> #define pis pair<int , string> #define psl pair<string , ll> #define pcl pair<char , ll> #define plc pair<ll , char> #define pls pair<ll , string> #define pb push_back #define eb emplace_back #define mp make_pair #define ins insert #define END return 0 #define mod 1e9 #define speed ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0) #define all(x) (x).begin() , (x).end() #define oo 1e9 #define Size(x) x.size() /* int gcd(int number1 , int number2){ if(number2 == 0){ return number1; } return gcd(number2 , number1 % number2); } int lcm(int number1 , int number2){ return number1 / gcd(number1 , number2) * number2; } ll fact(int number){ ll product = 1; for(int i=2 ; i<=number ; i++){ product *= i; } return product; } */ //#define int ll void solve(){ int n , m; cin >> n >> m; vector<int> cost(n+5); vector<int> sums(n+5); int x; cin >> x >> cost[1]; sums[1] = cost[1]; for(int i=2 ; i<=n ; i++){ int x; cin >> x >> cost[i]; sums[i] = sums[i-1] + cost[i]; } while(m--){ int N , C; cin >> N >> C; C = C + sums[N-1]; int l = N , r = n , best = 0; while(l <= r){ int mid = l + (r - l) / 2; if(sums[mid] >= C){ best = mid; r = mid - 1; } else{ l = mid + 1; } } cout << best << '\n'; } } /*signed */ int main(){ speed; int t = 1; //cin >> t; while(t--){ solve(); } END; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...