- 56.93%
- 2000ms
- 262144K
The king is dead, long live the king! After the sudden death of the king Fert XIII the people of theFlatland Kingdom are going to welcome the new king. Unfortunately, there is a problem, Fert has too many sons.
Actually, he has n sons and he loved each new son more than all of his previous sons. Well, probably he just stopped loving his sons because of their bad behavior. Anyway, after the new son was born Fert made the new testament that declared that the newly born son would be the heir.
However, there is a problem. Only the king’s son who is at least 18 years old at the moment of the king’s death can become a new king. Now the ministers of the government are trying to find the correct new king, but they seem to fail. Help them!
Input
The first line of the input contains three integers: d,m and y — the day, the month and the year of the king’s death, d is from 1 to 31, m is from 1 to 12,y is from 1 to 9999. It is guaranteed that there exists day d in month m, all months have the same number of days in Flatland as in our country, except thatFlatland calendar doesn’t have leap years, so February (month 2) always has 28 days.
The second line contains n (1 ≤ n ≤ 100) — the number of king’s sons. The following n lines contain three integers each di, mi and yi and specify the birth dates of king’s sons. All dates are correct and no son is born after or on the day of king’s death. The king had no twins, so no two sons were born on the same date.
Output
Output one integer — the number of the son that would become the king, or −1 if none of them is at least 18 years old. The sons are numbered from 1 to n in order they are described in the input. The youngest son who is at least 18 years old at the moment of the king’s death would become the king. If the son has his 18th birthday exactly on the day of the king’s death, he can become a king.
样例输入1
22 10 2016 7 28 2 1999 22 7 1995 21 10 1998 23 10 1998 3 9 2000 1 4 2013 17 12 2004
样例输出1
3
样例输入2
22 10 2016 1 28 2 1999
样例输出2
-1
给出国王的死亡日期,找出最年轻的大于等于18的王子。
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; #define trans(x,y,z) z+0.01*y+0.0001*x int main(){ int x,y,z; while(~scanf("%d%d%d",&x,&y,&z)){ double X=trans(x,y,z),val=99999; int n,flag=-1; scanf("%d",&n); for(int i=1;i<=n;i++){ scanf("%d%d%d",&x,&y,&z); double t=trans(x,y,z); if(X-t>=18.0&&X-t<val){ flag=i; val=X-t; } } printf("%d\n",flag); } return 0; }