5 solutions
-
5
#include <bits/stdc++.h> using namespace std; struct p{ int id,t; }a[1005]; int sum,t[1005]; bool cmp(p b,p c){ return b.t < c.t; } int main(int argc, char **argv){ int n; cin >> n; for (int i = 1;i <= n;i++){ cin >> a[i].t; a[i].id = i; } sort(a + 1,a + 1 + n,cmp); for (int i = 1;i <= n;i++){ printf("%d ",a[i].id); t[i] = t[i - 1] + a[i].t; } for (int i = 1;i <= n;i++){ sum += t[i]; } sum -= t[n]; printf("\n%.2f",1.00 * sum / n); return 0; }
-
4
#include<bits/stdc++.h> using namespace std; int n; struct water{ int t; int no; }p[1005]; double sum=0; bool f(water x,water y){ return x.t<y.t; } int main(){ cin>>n; for(int i=0;i<n;i++){ cin>>p[i].t; p[i].no=i+1; } sort(p,p+n,f); for(int i=0;i<n;i++){ cout<<p[i].no<<' '; sum+=p[i].t*(n-i-1); } cout<<"\n"; cout<<fixed<<setprecision(2)<<sum/double(n)<<"\n"; }
-
3
#include<iostream> #include<cstdio> #include<algorithm>//为了用sort快排 using namespace std; struct a { int b,num;//定义结构体a }; bool cmp(a x,a y)//定义“小于”运算符 { return x.b<y.b; } int main() { struct a a[10005];//定义结构体数组 int n,i,j; double time=0; cin>>n; for(i=1;i<=n;i++) { cin>>a[i].b; a[i].num=i;//序号存起来 } sort(a+1,a+n+1,cmp);//排序 for(i=1;i<=n;i++) { cout<<a[i].num<<" "; //先把简单的做了,输入由小到大的编号 } cout<<endl;//要换行 for(j=n-1;j>=1;j--) //等待人数的计数器,由n-1开始 { i=n-j;//这是个规律,当前最少时间的人序号和要等待的人数之和=n time+=a[i].b*j; //累加 } printf("%.2lf",time/n);//算平均,保留两位小数 return 0; }
-
1
#include<bits/stdc++.h> #include<iostream> using namespace std; int n; double wt;//总等待时间 struct w{ unsigned int time,inx,wtime;//接水时间 编号 等待时间 }a[1005]; bool comp(w x,w y){ if(x.time<y.time) return 1; else return 0; return 0; } int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>a[i].time; a[i].inx=i;//标记编号 } sort(a+1,a+n+1,comp); for(int i=1;i<=n;i++){ cout<<a[i].inx<<' '; a[i].wtime+=a[i-1].time+a[i-1].wtime;//等待时间=上个人等待时间+接水时间 wt+=a[i].wtime;//总时间 }cout<<endl; wt/=n; printf("%.2lf",wt); return 0; }
-
-28
简单的题
#include<iostream> #include<iomanip> #include<algorithm> using namespace std; struct p{ int num; int data; }; bool c(p a,p b){ return a.data<b.data; } p a[int(2e6)]; int main(){ int n; cin>>n; for(int i=0;i<n;i++){ cin>>a[i].data; a[i].num=i+1; } sort(a,a+n,c); for(int i=0;i<n;i++) cout<<a[i].num<<" "; cout<<"\n"; double sum=0; for(int i=0;i<n;i++) for(int j=0;j<i;j++) sum+=a[j].data; cout<<setprecision(2)<<fixed<<sum/n; }
- 1
Information
- ID
- 804
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- # Submissions
- 203
- Accepted
- 40
- Uploaded By