⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 waits.cpp

📁 是服务优先顺序的实验
💻 CPP
字号:
#include<iostream>
#include<fstream>
using namespace std;
ifstream in("input.txt");
ofstream out("output.txt");

void Swap(int& a,int& b)
{
	int temp=a;
	a=b;
	b=temp;
}

int Partition(int a[],int p,int r)
{
	int i=p,
		j=r+1;
	int x=a[p];
	while(true)
	{
		while(a[++i]<x);
		while(a[--j]>x);
		if(i>=j)break;
		Swap(a[i],a[j]);
	}
	a[p]=a[j];
	a[j]=x;
	return j;
}

void QuickSort(int a[],int p,int r)
{
	if(p<r)
	{
		int q=Partition(a,p,r);
		QuickSort(a,p,q-1);
		QuickSort(a,q+1,r);
	}
}
main()
{
    int n,s,r,t,sum=0;
    double ave;
	in>>n>>s;
	int *a=new int[n];
	int *s0=new int[s];
	for(int i=0;i<=n-1;i++)
		in>>a[i];
	QuickSort(a,0,n-1);
	for(i=0;i<=s-1;i++)
		s0[i]=0;
	t=n%s;
	for(i=0;i<=s-1;i++)
	{
		r=n/s;
		for(int j=i;j<=n-1;j=j+s)
		{
			if(i+1<=t)
			{
				s0[i]+=a[j]*(r+1);
				r--;
			}
			else
			{
				s0[i]+=a[j]*r;
				r--;
			}
		}
	}
	for(i=0;i<=s-1;i++)
	sum+=s0[i];
	cout<<sum;
	ave=(double)sum/n;
	out<<ave;
	delete []a;
	delete []s0;
	return 0;
}
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -