Submission #764027

#TimeUsernameProblemLanguageResultExecution timeMemory
764027vjudge1Fountain (eJOI20_fountain)C++17
60 / 100
1578 ms6220 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> #define ordered_set tree<ll,null_type,less<ll>,rb_tree_tag,tree_order_statistics_node_update> #define len(x) (int)x.size() #define ull unsigned long long #define F first #define S second #define pb push_back #define pf push_front #define popb pop_back #define popf pop_front #define int long long using namespace std; using namespace __gnu_pbds; using ll = long long; const int N = 2e5 + 5; const int MOD = 1e9 + 7; int n,q,a[N],b[N],p[N]; bool ok = 1; main(){ // freopen("txt.in", "r", stdin); // freopen("txt.out", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n >> q; for (int i=1;i<=n;i++){ cin >> a[i] >> b[i]; if (a[i] < a[i-1]){ ok = 0; } } if (ok){ for (int i=1;i<=n;i++){ p[i] = p[i-1] + b[i]; } while(q--){ int x,y; cin >> x >> y; int l = x; int r = n; while(l<=r){ int md = (l + r) / 2; if (p[md] - p[x-1] < y){ l = md + 1; } else{ r = md - 1; } } if (p[n] - p[x-1] < y) cout << 0 << '\n'; else cout << l << '\n'; } } else{ while(q--){ int x,y; cin >> x >> y; int act = 0,cnt = 0; bool w = 0; for (int i=x;i<=n;i++){ if (a[i] > act){ act = a[i]; cnt += b[i]; } if (cnt >= y){ cout << i << '\n'; w = 1; break; } } if (!w) cout << 0 << '\n'; } } } //order_of_key(k): Number of items strictly smaller than k . //find_by_order(k): K-th element in a set (counting from zero). //sum of squares n*(n+1)*(2n+1)/6 //sum of cubes [n*(n+1)/2]^2 //sum of squares for odds n*(4*n*n-1)/3 //sum of cubes for odds n*n*(2*n*n-1) //a/b%mod = a*(b^(m-2)%mod) //(a>>x)&1 == 0 //a^b = (a+b)-2(a&b) //srand(time(0))-always changing

Compilation message (stderr)

fountain.cpp:27:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   27 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...