disk.cpp

来自「磁盘文件最优存储问题」· C++ 代码 · 共 47 行

CPP
47
字号
#include<iostream>
#include<vector>
#include <fstream>

using namespace std;

ifstream fin("input.txt");
ofstream fout("output.txt");

double disksave(vector<int> p)
{
  int n=p.size();
  vector<int> d(n,0);
  sort(p.begin(),p.end());
  int k=(n-1)/2;
  d[k]=p[n-1];
  for (int i=k+1;i<n;i++)
   d[i]=p[n-2*(i-k)];
  for (int i=k-1;i>=0;i--)
   d[i]=p[n-2*(k-i)-1];
  double sum=0,findtime=0;
  for (int i=0;i<n;i++)
   {
     sum=sum+p[i];
     for (int j=i+1;j<n;j++)
      findtime=findtime+d[i]*d[j]*(j-i);
   }
  findtime=findtime/sum/sum;
  return findtime;
}

int main()
{
	int n,s;
	vector<int> b;
	fin>>n;
	for (int m=1;m<=n;m++)
	 {
       fin>>s;  
       b.push_back(s);   
     }
	fout<<disksave(b);
	fin.close();
	fout.close();
    return 0;
}

⌨️ 快捷键说明

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