您的位置:首页 > 其它

UVA 1468 Restaurant ?

2016-10-14 09:07 309 查看
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define rep(i,a,b) for(int i=(a);i<(b);i++)
#define ss(x) scanf("%d",&x)
const int maxn=60000+10;
int y,ax,ay,bx,by,m,n,h[maxn];
int main()
{
int t;
ss(t);
while(t--)
{
ss(m);ss(n);
int a,b;
ss(ax);ss(ay);ss(bx);ss(by);
if(ax>bx) swap(ax,bx);
y=ay;
memset(h,0x7f,sizeof(h));
rep(i,2,n) {ss(a);ss(b);h[a]=min(h[a],abs(y-b));}
h[ax]=h[bx]=0;
rep(i,ax+1,bx) h[i]=min(h[i],h[i-1]+1);
for(int i=bx;i>ax;i--) h[i]=min(h[i],h[i+1]+1);
int ans=0;
rep(i,ax+1,bx) if(h[i]) ans+=min(h[i]-1,y)+min(h[i]-1,m-y-1)+1;
cout<<ans<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: