神奇的输出,可以试试(逝世),悬关求调

P1223 排队接水

@[lucy2012](/user/1252442) 习惯太差,开那么大数组,会死人的。
by xu222ux @ 2024-03-22 09:48:10


@[lucy2012](/user/1252442) ```cpp #include<bits/stdc++.h> #define int long long using namespace std; double b[1000001],sum=0;int c[1003],n; double cmp(double a,double b){ return a>b; } signed main() { cin>>n; for(int i=1;i<=n;i++){ cin>>c[i]; b[c[i]]=i; } sort(c+1,c+1+n,cmp); for(int i=n;i>=1;i--){ cout<<b[c[i]]<<' '; sum+=c[i]*(i-1); } cout<<endl; printf("%.2lf",sum*1.0/n); return 0; } ``` 90pts
by xu222ux @ 2024-03-22 09:49:03


@[xu222ux](/user/563663) ```cpp #include<bits/stdc++.h> using namespace std; long long n,c[10000],b[100000010],sum=0; int cnt(int a,int b){ return a>b; } int main() { cin>>n; for(int i=1;i<=n;i++){ cin>>c[i]; b[c[i]]=i; } sort(c+1,c+1+n,cnt); for(int i=n;i>=1;i--){ cout<<b[c[i]]<<' '; sum+=c[i]*(i-1); } cout<<endl; printf("%.2lf",sum*1.0/n); return 0; } ``` 这样也行
by lucy2012 @ 2024-03-22 09:49:48


@[lucy2012](/user/1252442) 没100 的原因是你的c[i]的值可能会重复
by xu222ux @ 2024-03-22 09:49:58


@[lucy2012](/user/1252442) 我的CODE ```cpp #include<iostream> #include<cstdio> #include<algorithm> using namespace std; struct a{ int num,times; }m[1009]; int cmp(a x,a y){ return x.times<y.times; } long long n,ans; int main() { cin>>n; for(int i=1;i<=n;i++){ cin>>m[i].times; m[i].num=i; } sort(m+1,m+1+n,cmp); for(int i=1;i<=n;i++){ cout<<m[i].num<<' '; ans+=(n-i)*m[i].times; } cout<<endl; printf("%.2f",1.0*ans/n); return 0; } ```
by xu222ux @ 2024-03-22 09:50:21


@[xu222ux](/user/563663) 我看成保证不重复QAQ
by lucy2012 @ 2024-03-22 09:52:32


|