BZOJ 2348 Baltic 2011 Plagiarism 排序

来源:互联网 发布:北京网络职业学院贴吧 编辑:程序博客网 时间:2024/06/13 23:26

题目大意:求n个数中有多少无序点对(i,j)满足0.9a[j]<=a[i]<=a[j]

《论排序算法的高效性和合理利用以及能否记得使用排序算法》

忘写sort贡献了个WA 2333333

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define M 100100#define EPS 1e-7using namespace std;int n,a[M];long long ans;int main(){int i,j;cin>>n;for(i=1;i<=n;i++)scanf("%d",&a[i]);sort(a+1,a+n+1);for(i=1,j=1;i<=n;i++){while(a[j]+EPS<a[i]*9.0/10.0)++j;ans+=i-j;}cout<<ans<<endl;}


0 0