比赛 20150422 评测结果 AAATTTTTTT
题目名称 马拉松 最终得分 30
用户昵称 Satoshi 运行时间 7.379 s
代码语言 C++ 内存使用 1.84 MiB
提交时间 2015-04-22 10:54:46
显示代码纯文本
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("marathona.in");
ofstream out("marathona.out");
int n,q;
int dis[100001]={0},di[100001]={0};
class node
{
public:
	int x;
	int y;
}po[100001];
int dis2(node a,node b)
{
	int c=0;
	c=abs(a.x-b.x);
	c+=abs(a.y-b.y);
	return c;
}
int main()
{
	int i,j,k,l,a,b,c,temp=0;
	int best=9999999;
	char d;
	in>>n>>q;
	for(i=1;i<=n;i++)in>>po[i].x>>po[i].y;
	/*for(i=1;i<=n-1;i++)
	{
		for(j=i+1;j<=n;j++)
		{
		   dis[i]=dis2(po[i],po[j]);
		   out<<dis[i]<<endl;
		}
	}*/
	for(i=1;i<=q;i++)
	{
		in>>d;
		if(d=='Q')
		{
			best=9999999;
			in>>a>>b;
			//out<<"fuck"<<endl;
			for(j=a+1;j<=b-1;j++)
			{
				//out<<j<<' ';
				temp=0;
				for(k=a;k<=b-1;k++)
				{
					
					int o=k+1;
					if(k==j)continue;
					//out<<k<<' ';
					if(k+1==j)o++;
					//out<<k<<' '<<o<<endl;
					temp+=dis2(po[k],po[o]);
				}
				//out<<temp<<endl;
				if(temp<best)best=temp;
			}
			//out<<endl;
			out<<best<<endl;
		}
		if(d=='U')
		{
			in>>a>>b>>c;
			po[a].x=b;
			po[a].y=c;
		}
	}
	return 0;
}