小HY的四元组

小HY的四元组

可爱的小HY在偶然间发现了一种等差四元组,我们定义四元祖为{\(a,b,c,d\)}四个数的有序集合。若对于\(i,j(i<j)\)的四元组{\(a_i,b_i,c_i,d_i\)}和{\(a_j,b_j,c_j,d_j\)}存在\(a_i-a_j=b_i-b_j=c_i-c_j=d_i-d_j\)则称\((i,j)\)为一对等差四元组。
小HY是个有特殊癖好的人,现在给出\(n\)个四元组,他想知道在所有等差四元组\((i,j)\)\(j-i\)的最小值和\(i+j\)的最大值。聪明的你能告诉他答案吗?

Input

输入文件有\(n+1\)行,第一行为一个数\(n\),接下来输入\(n\)行,每行\(a,b,c,d\)四个整数。

Output

输出只有一行,包括\(j-i\)最小值\(i+j\)最大值,中间有空格隔开,数据保证有解

Example

输入 #1

\(7\)
\(1\) \(2\) \(3\) \(4\)
\(2\) \(3\) \(4\) \(5\)
\(1\) \(4\) \(3\) \(3\)
\(5\) \(2\) \(3\) \(5\)
\(2\) \(4\) \(5\) \(6\)
\(1\) \(4\) \(3\) \(3\)
\(2\) \(5\) \(4\) \(4\)

输出 #1

\(1\) \(13\)

输入 #2

\(10\)
\(1\) \(4\) \(3\) \(2\)
\(4\) \(4\) \(4\) \(4\)
\(2\) \(3\) \(4\) \(5\)
\(1\) \(1\) \(1\) \(1\)
\(1\) \(2\) \(3\) \(1\)
\(3\) \(4\) \(2\) \(1\)
\(2\) \(4\) \(5\) \(2\)
\(8\) \(9\) \(7\) \(6\)
\(0\) \(0\) \(0\) \(0\)
\(1\) \(2\) \(3\) \(4\)

输出 #2

\(2\) \(14\)

Scoring

对于30%的数据\(n<=1000\)
对于100%的数据\(n<=500000\)\(a,b,c,d\)均在int范围内。

不是难题,但是依旧20分

这道题比赛时候脑子抽了...

先是预处理的时候一定要把最小值求出来,然后用四个数去减

然后不排序,搞了个map(憨

用了大概是哈希一样的办法,就是每个数减去min之后乘上一个什么什么质数再加起来放到map里

结果不仅WA还TLE

正解边看代码边理解吧

//感觉不用多讲,自己理解理解(真的有人看吗 
#include<bits/stdc++.h>
using namespace std;
#define inf 500005

int n, minn = inf, maxn;
int a, b, c, d;

struct code {
	int x, y, z;
	int num;
} p[inf];

bool cmp(code x, code y) {
	if (x.x != y.x) return x.x < y.x;
	if (x.y != y.y) return x.y < y.y;
	if (x.z != y.z) return x.z < y.z;
	return x.num < y.num;
}

int main() {
	scanf("%d", &n);
	for (int i = 1; i <= n; i++)
	{
		scanf("%d %d %d %d", &a, &b, &c, &d);
		p[i].x = b - a;
		p[i].y = c - a;
		p[i].z = d - a;//如果两个四元组中这三个值都一样,这俩就是等差四元组 
		p[i].num = i; 
	}
	sort(p + 1, p + n + 1, cmp);
	a = p[1].x, b = p[1].y, c = p[1].z;
	for (int i = 2; i <= n; i++) {
		if(p[i].x != a || p[i].y != b || p[i].z != c)
			a = p[i].x, b = p[i].y, c = p[i].z;
		else minn = min(minn, p[i].num - p[i - 1].num), maxn = max(maxn, p[i].num + p[i-1].num);
		//因为j-i的最小值需要尽量靠近的,i+j的最大值需要尽量靠后的,所以答案的i与j一定在排序后相邻 
	}
	printf("%d %d", minn, maxn);
	return 0;
}
//:/

posted @ 2020-07-22 08:31  七离符  阅读(224)  评论(0)    收藏  举报