每日一题:https://www.luogu.com.cn/problem/P1223

题目链接:https://www.luogu.com.cn/problem/P1223

#include < iostream>
#include < algorithm>
using namespace std;
int main(){
int num;
cin>>num;
long long arr[num+3];
long long arr1[num+3];
long long nums[num+3];
int yes[num+3];
for(int i=0;i<num;i++){
cin>>arr[i];
arr1[i]=arr[i];
yes[i]=1;
}
sort(arr,arr+num);
long long pi=0;
for(int i=0;i<num-1;i++){
pi+=((num-1-i)*arr[i]);
}
long double pio=(long double)pi/num;
for(int i=0;i<num;i++){
int l=-1,r=num;
int ui;
while (l+1!=r){
int mid=(l+r)/2;
if(arr[mid]>=arr1[i]){
r=mid;
} else{
l=mid;
}
ui=r;
}
for( ; ; ){
if(!yes[ui]){
ui++;
} else
break;}
yes[ui]=0;
nums[ui]=i+1;

}
for(int i=0;i<num;i++){
cout<<nums[i]<<" ";
}cout<<endl;
printf("%.2llf\n",pio);
return 0;}

posted on 2024-11-25 02:31  神奇猫猫侠  阅读(20)  评论(0编辑  收藏  举报

导航