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

📄 pro222.cpp

📁 在一个按照东西和南北方向划分成规整街区的城市里
💻 CPP
字号:
/*****
Problem C:邮局选地址

Time Limit:1000MS  Memory Limit:65536K

Total Submit:178 Accepted:57 

Language: not limited


Description 
在一个按照东西和南北方向划分成规整街区的城市里,n个居民点散乱地分布在不同的街区中。用x 坐标表示东西向,用y坐标表示南北向。各居民点的位置可以由坐标(x,y)表示。街区中任意2 点(x1,y1)和(x2,y2)之间的距离可以用数值|x1-x2|+|y1-y2|度量。 
居民们希望在城市中选择建立邮局的最佳位置,使n个居民点到邮局的距离总和最小。 
编程任务: 
给定n 个居民点的位置,编程计算n 个居民点到邮局的距离总和的最小值。

Input 

第1 行是居民点数n,1 =< n <= 10000。 
接下来n 行是居民点的位置,每行2 个整数x 和y,-10000 =< x,y <= 10000。

Output 

输出n 个居民点到邮局的距离总和的最小值。


Sample Input 


5
1 2
2 2
1 3
3 -2
3 3

Sample Output 


10
********************/
/////////////////////////////////////////
#include<iostream.h>
#include<math.h>
/*求绝对多数绝对值*/
int nor(int a)
{
    if(a<0) a=0-a;
    return(a);

}
//////////////////////////////////////////
int main()
{
    int hang[10],lie[10];
    int count1,count2,n;
    int tempt;
     int all=0;
     cin >> n;
    for(count1=0;count1<n;count1++)
    {
    	cin >>hang[count1]>>lie[count1];
    }
    for(count1=0;count1<n;count1++)
    {
        for(count2=n-1;count2>count1;count2--)
        {
            if(hang[count2]>hang[count2-1])
            {
                tempt=hang[count2];
                hang[count2]=hang[count2-1];
                hang[count2-1]=tempt;
            }
            if(lie[count2]>lie[count2-1])
            {
                tempt=lie[count2];
                lie[count2]=lie[count2-1];
                lie[count2-1]=tempt;
            }
        }
    }


    for(count1=0;count1<n;count1++)
    {
          all=all+nor(hang[count1]-hang[count1/2])+nor(lie[count1]-lie[count1/2]);
    }
    cout << all;
}




⌨️ 快捷键说明

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