【CodeForces 456A】Laptops

One day Dima and Alex had an argument about the price and quality of laptops. Dima thinks that the more expensive a laptop is, the better it is. Alex disagrees. Alex thinks that there are two laptops, such that the price of the first laptop is less (strictly smaller) than the price of the second laptop but the quality of the first laptop is higher (strictly greater) than the quality of the second laptop.

Please, check the guess of Alex. You are given descriptions of n laptops. Determine whether two described above laptops exist.

Input

The first line contains an integer n (1 ≤ n ≤ 105) — the number of laptops.

Next n lines contain two integers each, ai and bi (1 ≤ ai, bi ≤ n), where ai is the price of the i-th laptop, and bi is the number that represents the quality of the i-th laptop (the larger the number is, the higher is the quality).

All ai are distinct. All bi are distinct.

Output

If Alex is correct, print "Happy Alex", otherwise print "Poor Alex" (without the quotes).

Examples

Input
2
1 2
2 1
Output
Happy Alex

answer

There are a total of n computers, and the price and quality of each computer are given in turn. Ask if there is a lower price and higher quality.

The key to this question is to construct a structure to store price x and quality y, and then sort them in ascending order of price. If the two adjacent elements in the sorting are in the situation described in the question, it is found.

#include<bits/stdc++.h>
using namespace std;
struct node
{
    int x,y;
}a[100005];
bool cmp(node a,node b)
{
    return a.x<b.x;
}
intmain ()
{
    int n,i;
    cin>>n;
    for(i=0;i<n;i++)
        scanf("%d%d",&a[i].x,&a[i].y);
    sort(a,a+n,cmp);
    for(i=1;i<n;i++)
    {
        if(a[i].y<a[i-1].y)
        break;
    }
    if(i<n)
    printf("Happy Alex\n");
    else if(i==n) 
    printf("Poor Alex\n");
    return 0;
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324635342&siteId=291194637
456