欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【CodeForces 456A】Laptops

程序员文章站 2022-07-09 14:18:49
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 ......

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

题解

共n台电脑,依次给出每台电脑的价钱和质量,问有没有存在价钱更低,质量更高的。

这个题的关键就是要构造一个结构体用来保存价格x和质量y,然后按照价格升序排序,若是在排序中相邻的两个元素出现题中所述情况,即是找到了。

#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;
}
int main()
{
    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;
}