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

📄 pipe_count.cpp

📁 给定n口油井的位置,编程计算各油井到主管道之间的输油管道最小长度总和。
💻 CPP
字号:
#include<iostream>
#include<fstream>
#include<cmath>
int c[20001],a[10001],b[10001],n;
using namespace std;
void countingsort()
{
    int i;
    memset(c,0,sizeof(c));
    for(i=0;i<n;i++)c[a[i]]++;
    for(i=1;i<=20000;i++)c[i]+=c[i-1];
    for(i=n;i>0;i--){
        b[c[a[i-1]]-1]=a[i-1];
        c[a[i-1]]--;
    }
}
int main()
{
    ifstream fin("input.txt");
    ofstream fout("output.txt");
    if(!fin.is_open()){
        fout<<"error\n";
        exit(1);
    }
    while(fin>>n){        
        int i,sum=0,temp;        
        for(i=0;i<n;i++){
            fin>>temp>>a[i];
            a[i]+=10000;            
        }
        countingsort();
        int mid=b[n/2];
        for(i=0;i<n;i++)
            sum+=abs(a[i]-mid);
	//	fout<<mid-10000<<endl;
        fout<<sum<<endl;
    }
    fout.close();
    fin.close();
    return 0;
}

⌨️ 快捷键说明

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