【习题 5-6 UVA-1595】Symmetry

【链接】 我是链接,点我呀:)
【题意】

在这里输入题意

【题解】

每一个y坐标的点都找中点。 看看中点是不是都一样就好。

【代码】

#include <bits/stdc++.h>
using namespace std;


map<int, vector <int> > mmap;
int n,ans,ok;

void check(int x)
{
	if (ans == 30000)
		ans = x;
	else
		if (ans != x)
			ok = 0;
}

int main()
{
	//freopen("F:\\rush.txt", "r", stdin);
	int T;
	scanf("%d", &T);
	while (T--)
	{
		ok = 1;
		ans = 30000;
		mmap.clear();
		scanf("%d", &n);
		for (int i = 1; i <= n; i++)
		{
			int x, y;
			scanf("%d%d", &x, &y);
			mmap[y].push_back(x);
		}
		
		for (auto temp : mmap)
		{
			vector <int> v = temp.second;
			sort(v.begin(), v.end());
			int len = v.size();
			if (len & 1) check(2*v[len / 2 + 1 - 1]);
			for (int i = 0; i < len / 2; i++) check(v[i] + v[len - i - 1]);
		}

		if (ok)
			puts("YES");
		else
			puts("NO");
	}
	return 0;
}
posted @ 2017-10-15 09:40  AWCXV  阅读(90)  评论(0编辑  收藏  举报