# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
37356 | IvanC | Vudu (COCI15_vudu) | C++14 | 536 ms | 30012 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#define LSOne(S) (S & (-S))
using namespace std;
typedef long long ll;
const ll MAXN = 1000010;
ll bit[MAXN],vetor[MAXN];
void update(ll pos){
while(pos < MAXN){
bit[pos]++;
pos += LSOne(pos);
}
}
ll read(ll pos){
ll ans = 0;
while(pos > 0){
ans += bit[pos];
pos -= LSOne(pos);
}
return ans;
}
vector<ll> comp;
int main(){
ll n;
scanf("%lld",&n);
comp.push_back(0);
for(ll i=1;i<=n;i++) scanf("%lld",&vetor[i]);
ll p;
scanf("%lld",&p);
ll soma = 0,resp = 0;
for(ll i=1;i<=n;i++){
soma += vetor[i];
soma -= p;
comp.push_back(soma);
}
sort(comp.begin(),comp.end());
comp.erase(unique(comp.begin(),comp.end()),comp.end());
soma = 0;
for(ll i=0;i<=n;i++){
soma += vetor[i];
if(i)soma -= p;
ll davez = lower_bound(comp.begin(),comp.end(),soma) - comp.begin() + 1;
resp += read(davez);
update(davez);
}
printf("%lld\n",resp);
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |