C-求调
就差最后一个测试点了,到底还有啥啊,求大佬赐教啊
#include<iostream> #include<algorithm> #include<vector> using namespace std; const int N = 1e5+10; vector<int> b; //离散化 int find(int x) { int l=0,r=b.size()-1; while(l<r) { int mid=l+r>>1; if(b[mid]>=x) r=mid; else l=mid+1; } return r; } int main() { int n; int count[N]={0}; int sum[N]={0}; vector<int> a; cin>>n; for(int i=0;i<n;i++) { int x; scanf("%d",&x); a.push_back(x); } b=a; sort(b.begin(),b.end()); for(int i=0;i<n;i++) { int x=find(a[i]); sum[i+1]=sum[i]+count[x]; count[x]++; } for(int i=1;i<=n;i++) printf("%d ",sum[i]); return 0; }