E - Dist Max
题意:
很简单。
思路:
可以把绝对值拆开,之后分类讨论即可。(维护几个最大值即可)
AC
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
const int maxn = 1e6+7;
int n;
long long seed;
inline long long rand(long long l, long long r) {
static long long mo=1e9+7, g=78125;
return l+((seed*=g)%=mo)%(r-l+1);
}
long long Max[10];
long long Min[10];
int main()
{
int t=1;
//scanf("%d",&t);
for(int cas=1;cas<=t;cas++)
{
cin >> n ;//>> seed;
for(int i=0;i<10;i++)
Max[i]=-1e15,Min[i]=1e15;
long long x,y;
for (int i = 0; i < n; i++)
{
cin>>x;// x = rand(-1000000000, 1000000000);
cin>>y;//y = rand(-1000000000, 1000000000);
Max[0]=max(Max[0],x+y);
Max[1]=max(Max[1],-x+y);
Max[2]=max(Max[2],x-y);
Max[3]=max(Max[3],-x-y);
Min[0]=min(Min[0],x+y);
Min[1]=min(Min[1],-x+y);
Min[2]=min(Min[2],x-y);
Min[3]=min(Min[3],-x-y);
}
long long ans = 0;
for(int i=0;i<4;i++)
ans=max(Max[i]-Min[i],ans);
cout<<ans<<endl;
}
}