【题解】codeforce1184 C1. Heidi and the Turing Test (Easy)⭐⭐【构造 思维】

codeforce1184 C1. Heidi and the Turing Test (Easy)

The Cybermen and the Daleks have long been the Doctor’s main enemies. Everyone knows that both these species enjoy destroying everything they encounter. However, a little-known fact about them is that they both also love taking Turing tests!

Heidi designed a series of increasingly difficult tasks for them to spend their time on, which would allow the Doctor enough time to save innocent lives!

The funny part is that these tasks would be very easy for a human to solve.

The first task is as follows. There are some points on the plane. All but one of them are on the boundary of an axis-aligned square (its sides are parallel to the axes). Identify that point.

Input

The first line contains an integer n (2≤n≤10).

Each of the following 4n+1 lines contains two integers xi,yi (0≤xi,yi≤50), describing the coordinates of the next point.

It is guaranteed that there are at least n points on each side of the square and all 4n+1 points are distinct.

Output

Print two integers — the coordinates of the point that is not on the boundary of the square.

Examples

inputCopy
2
0 0
0 1
0 2
1 0
1 1
1 2
2 0
2 1
2 2
outputCopy
1 1
inputCopy
2
0 0
0 1
0 2
0 3
1 0
1 2
2 0
2 1
2 2
outputCopy
0 3

Hint




题意:

给出4n+1个点, 除了一个点之外其余点都在一个正方形的边界上, 找出这个点

题解:

构造 + 判断即可

经验小结:


#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
#define ms(x, n) memset(x,n,sizeof(x));
typedef  long long LL;
const int inf = 1<<30;
const LL maxn = 510;
 
int N;
int x[maxn], y[maxn];
bool judge(int t){
    int by = inf, ty = -inf, lx = inf, rx = -inf;
    for(int i = 1; i <= N; ++i)
        if(i != t){
            by = min(by, y[i]);
            ty = max(ty, y[i]);
            lx = min(lx, x[i]);
            rx = max(rx, x[i]);
        }
    bool flag = true;
    for(int i = 1; i <= N; ++i)
        if(i != t){
            if(x[i]!=lx && x[i]!=rx && y[i]!=by && y[i]!=ty){
                flag = false;
                break;
            }
        }
    if(flag && ty-by==rx-lx) return true;
    else return false;
}
int main()
{
    cin >> N;
    N = 4*N+1;
    for(int i = 1; i <= N; ++i)
        cin >> x[i] >> y[i];
    for(int i = 1; i <= N; ++i){
        if(judge(i)){
            cout << x[i] << " " << y[i] << endl;
            break;
        }
    }
	return 0;
}
/*
2
0 0
1 1
0 1
0 2
1 0
1 2
2 0
2 1
2 2
*/

你可能感兴趣的:(思维)