답안 #232548

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
232548 2020-05-17T10:23:42 Z alishahali1382 Vudu (COCI15_vudu) C++14
140 / 140
378 ms 29652 KB
#include <bits/stdc++.h>
#pragma GCC optimize ("O2")
#pragma GCC optimize ("unroll-loops")
//#pragma GCC optimize("no-stack-protector,fast-math")

using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<pii, int> piii;
typedef pair<ll, ll> pll;
#define debug(x) cerr<<#x<<'='<<(x)<<endl;
#define debugp(x) cerr<<#x<<"= {"<<(x.first)<<", "<<(x.second)<<"}"<<endl;
#define debug2(x, y) cerr<<"{"<<#x<<", "<<#y<<"} = {"<<(x)<<", "<<(y)<<"}"<<endl;
#define debugv(v) {cerr<<#v<<" : ";for (auto x:v) cerr<<x<<' ';cerr<<endl;}
#define all(x) x.begin(), x.end()
#define pb push_back
#define kill(x) return cout<<x<<'\n', 0;

const ld eps=1e-7;
const int inf=1000000010;
const ll INF=10000000000000010LL;
const int mod=1000000007;
const int MAXN=1000010, LOG=20;

int n, m, k, u, v, x, y, t, a, b;
ll A[MAXN], P, ans;
int fen[MAXN];
vector<ll> comp;

inline void add(int pos){
	for (; pos<MAXN; pos+=pos&-pos) fen[pos]++;
}
inline int get(int pos){
	int res=0;
	for (; pos; pos-=pos&-pos) res+=fen[pos];
	return res;
}

int main(){
	ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	//freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
	cin>>n;
	for (int i=1; i<=n; i++) cin>>A[i], A[i]+=A[i-1];
	cin>>P;
	for (int i=1; i<=n; i++) A[i]-=P*i, comp.pb(A[i]);
	sort(all(comp));
	comp.resize(unique(all(comp))-comp.begin());
	for (int i=0; i<=n; i++){
		A[i]=lower_bound(all(comp), A[i])-comp.begin()+1;
		ans+=get(A[i]);
		add(A[i]);
	}
	cout<<ans<<'\n';
	
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 640 KB Output is correct
2 Correct 6 ms 640 KB Output is correct
3 Correct 6 ms 640 KB Output is correct
4 Correct 378 ms 28756 KB Output is correct
5 Correct 205 ms 18284 KB Output is correct
6 Correct 332 ms 25700 KB Output is correct
7 Correct 326 ms 26580 KB Output is correct
8 Correct 288 ms 23124 KB Output is correct
9 Correct 370 ms 29652 KB Output is correct
10 Correct 323 ms 25940 KB Output is correct