5 solutions

  • 5
    @ 2024-1-27 10:30:31
    #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
      @ 2024-1-27 10:20:50
      #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
      @ 2024-1-25 9:33:13
      
      #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
        @ 2025-3-12 16:45:56
        #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
          @ 2024-1-27 10:22:35

          简单的题

          #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