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
Input2Output
1 2
2 1
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; }