# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
971899 | 2024-04-29T12:54:33 Z | Sunbae | Vudu (COCI15_vudu) | C++17 | 19 ms | 5992 KB |
#include <bits/stdc++.h> typedef long long ll; using namespace std; const int N = 1e5 + 5; vector<ll> cp; ll bit[N], qs[N], P; int m; int pos(ll x){return upper_bound(cp.begin(), cp.end(), x) - cp.begin();} void upd(int i){for(; i<=m; i+=i&-i) ++bit[i];} ll qry(int i){ll res = 0; for(; i; i-=i&-i) res += bit[i]; return res;} signed main(){ int n; scanf("%d", &n); for(int i = 1; i<=n; ++i) scanf("%lld", qs+i); for(int i = 1; i<=n; ++i) qs[i] += qs[i-1]; scanf("%lld", &P); for(ll i = 0; i<=n; ++i) cp.push_back(qs[i] - P*i); sort(cp.begin(), cp.end()); cp.resize(unique(cp.begin(), cp.end()) - cp.begin()); m = cp.size(); upd(pos(0)); ll Ans = 0; for(ll i = 1; i<=n; ++i){ int x = pos(qs[i] - P*i); Ans += qry(x); upd(x); } printf("%lld", Ans); }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 600 KB | Output is correct |
2 | Correct | 2 ms | 604 KB | Output is correct |
3 | Correct | 1 ms | 604 KB | Output is correct |
4 | Runtime error | 18 ms | 5848 KB | Execution killed with signal 11 |
5 | Runtime error | 18 ms | 5724 KB | Execution killed with signal 11 |
6 | Runtime error | 19 ms | 5828 KB | Execution killed with signal 11 |
7 | Runtime error | 18 ms | 5708 KB | Execution killed with signal 11 |
8 | Runtime error | 19 ms | 5684 KB | Execution killed with signal 11 |
9 | Runtime error | 18 ms | 5712 KB | Execution killed with signal 11 |
10 | Runtime error | 18 ms | 5992 KB | Execution killed with signal 11 |