士兵队列问题.cpp

来自「王晓东算法设计与分析源码。vc下编译通过能够运行。且运行效率较高」· C++ 代码 · 共 31 行

CPP
31
字号
#include<iostream>
#include<algorithm>
using namespace std;
int x[10000];
int y[10000];

int main()
{
 		int n;
 		cin >> n;
 		for(int i=0;i<n;i++)
 		cin >> x[i] >> y[i];
 		int tempx;
 		int tempy;
 		nth_element(y,y+n/2,y+n);
 		tempy = y[n/2];
 		sort(x,x+n);
 		for(int i=0;i<n;i++)
 		x[i]-=i;
 		nth_element(x,x+n/2,x+n);
 		tempx = x[n/2];
 		int total = 0;
 		for(int i=0;i<n;i++)
 		{
         total +=abs(y[i]-tempy);
         total +=abs(x[i]-tempx);
		 }
		 cout << total << endl;
		 system("pause");
}

⌨️ 快捷键说明

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