#include <stdio.h>
unsigned date( d, m, y)
{
unsigned res = d + ( m> 2 ? y- 1 :-- y) * 365 + y/ 4 - y/ 100 + y/ 400 ;
switch ( m- 1 )
{
case 12 : res += 31 ;
case 11 : res += 30 ;
case 10 : res += 31 ;
case 9 : res += 30 ;
case 8 : res += 31 ;
case 7 : res += 31 ;
case 6 : res += 30 ;
case 5 : res += 31 ;
case 4 : res += 30 ;
case 3 : res += 31 ;
case 2 : res += 28 ;
case 1 : res += 31 ;
}
return res;
}
int main( void )
{
unsigned d1, m1, y1, d2, m2, y2, key, res;
while ( scanf ( "%u/%u/%u %u/%u/%u =>%u" , & d1
, & m1
, & y1
, & d2
, & m2
, & y2
, & key
) == 7 ) {
res = date( d2, m2, y2) - date( d1, m1, y1) + 1 ;
printf ( "%s %u %u\n " , res
== key
? "OK" : "FAIL" , res
, key
) ; }
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp1bnNpZ25lZCBkYXRlKGQsIG0sIHkpCnsKCXVuc2lnbmVkIHJlcyA9IGQgKyAobT4yP3ktMTotLXkpKjM2NSArIHkvNCAtIHkvMTAwICsgeS80MDA7CgkKCXN3aXRjaChtLTEpCgl7CgkJY2FzZSAxMjogcmVzICs9IDMxOwoJCWNhc2UgMTE6IHJlcyArPSAzMDsKCQljYXNlIDEwOiByZXMgKz0gMzE7CgkJY2FzZSAgOTogcmVzICs9IDMwOwoJCWNhc2UgIDg6IHJlcyArPSAzMTsKCQljYXNlICA3OiByZXMgKz0gMzE7CgkJY2FzZSAgNjogcmVzICs9IDMwOwoJCWNhc2UgIDU6IHJlcyArPSAzMTsKCQljYXNlICA0OiByZXMgKz0gMzA7CgkJY2FzZSAgMzogcmVzICs9IDMxOwoJCWNhc2UgIDI6IHJlcyArPSAyODsKCQljYXNlICAxOiByZXMgKz0gMzE7Cgl9CgkKCXJldHVybiByZXM7Cn0KCmludCBtYWluKHZvaWQpCnsKCXVuc2lnbmVkIGQxLCBtMSwgeTEsIGQyLCBtMiwgeTIsIGtleSwgcmVzOwoJCgl3aGlsZSAoc2NhbmYoIiV1LyV1LyV1ICV1LyV1LyV1ID0+JXUiLCAmZDEsICZtMSwgJnkxLCAmZDIsICZtMiwgJnkyLCAma2V5KSA9PSA3KQoJewoJCXJlcyA9IGRhdGUoZDIsbTIseTIpIC0gZGF0ZShkMSxtMSx5MSkgKyAxOwoJCXByaW50ZigiJXMgJXUgJXVcbiIsIHJlcz09a2V5PyJPSyI6IkZBSUwiLCByZXMsIGtleSk7Cgl9CgkKCXJldHVybiAwOwp9Cg==
stdin
MTUvOC8xOTg0IDE3LzMvMTk4OCA9Jmd0OyAxMzExCjEzLzEvMTk5NiAxNy8zLzIwMDIgPSZndDsgMjI1NgoyNi85LzE5OTMgMTAvOS8yMDgyID0mZ3Q7IDMyNDkyCjE3LzQvMTk3MyAyMC8xMC8yMDgyID0mZ3Q7IDM5OTk5CjE5LzEvMjAwMSAyMS8xMS8yMTI1ID0mZ3Q7IDQ1NTk3CjI0LzQvMTk4NSAxMy8xMS8yMTQ4ID0mZ3Q7IDU5NzM5CjI5LzQvMTk5OCAyNi85LzIwMDEgPSZndDsgMTI0NwoyNC82LzE5NzkgMjkvNC8xOTg0ID0mZ3Q7IDE3NzIKMy8xLzE5NzcgMTYvMTAvMTk4MiA9Jmd0OyAyMTEzCjkvOS8xOTg1IDE3LzMvMjA3OCA9Jmd0OyAzMzc5MwoyOS83LzE5NzggMTEvNS8yMTA5ID0mZ3Q7IDQ3NzY5CjIxLzYvMTk5MyAzLzgvMjAxMiA9Jmd0OyA2OTg0CjYvOC8xOTg3IDMwLzEwLzIwNDkgPSZndDsgMjI3MzIKMTAvMi8yMDA0IDIxLzQvMjA4NiA9Jmd0OyAzMDAyMgoxOS8yLzE5ODAgMjcvNC8yMDA5ID0mZ3Q7IDEwNjYxCjUvNS8xOTg2IDExLzIvMTk4OSA9Jmd0OyAxMDE0CjIzLzUvMjAxNSAxNC8yLzIwNjAgPSZndDsgMTYzMzkKMTgvOS8yMDAyIDMvMS8yMTI5ID0mZ3Q7IDQ2MTI5CjExLzIvMTk4NyAxLzEvMjA4MSA9Jmd0OyAzNDI5NAoxMC8xMS8xOTk2IDEzLzUvMjA4MCA9Jmd0OyAzMDUwMQoyMS82LzE5OTkgMTgvNS8yMTUwID0mZ3Q7IDU1MTE5CjE4LzEwLzE5OTQgNC8xLzIwNTUgPSZndDsgMjE5OTQKMjUvMTEvMTk3NSA3LzgvMjEwOCA9Jmd0OyA0ODQ2OQoxMi8xLzIwMTMgMjcvMi8yMTMxID0mZ3Q7IDQzMTQ1CjQvMS8xOTcwIDE0LzcvMjAzNyA9Jmd0OyAyNDY2NAo5LzExLzE5NzkgNC83LzE5OTYgPSZndDsgNjA4MwoyLzMvMjAwNSAxMS8xMS8yMTQ0ID0mZ3Q7IDUxMDI0CjEvMy8xOTgwIDE5LzUvMjA3NSA9Jmd0OyAzNDc3OAoxNS8yLzE5OTEgNy84LzIwNjQgPSZndDsgMjY4MzgKMTUvMi8yMDA5IDI5LzcvMjAxOCA9Jmd0OyAzNDUyCjIxLzUvMTk3MiAxLzIvMjEyOSA9Jmd0OyA1NzIzNQoxMy8xMi8yMDEwIDYvNS8yMDY0ID0mZ3Q7IDE5NTA0CjkvMi8xOTkwIDEzLzUvMjAwMCA9Jmd0OyAzNzQ3CjIxLzEyLzIwMDMgMTcvOC8yMDY1ID0mZ3Q7IDIyNTIxCjMvMS8xOTc4IDIvMTAvMjAzMyA9Jmd0OyAyMDM2MgozLzkvMjAwOCAxNy8xMC8yMTEwID0mZ3Q7IDM3Mjk5CjI3LzkvMTk3NCA5LzcvMjA3OSA9Jmd0OyAzODI3MgoyNi8xMS8xOTc2IDIvOC8yMDYzID0mZ3Q7IDMxNjYxCjE1LzkvMTk5OCAyMS84LzIwOTkgPSZndDsgMzY4NjYKMTgvMi8xOTkzIDcvMS8yMTE0ID0mZ3Q7IDQ0MTUzCjEwLzMvMjAwNSAxMC83LzIwNjMgPSZndDsgMjEzMDcKMzEvMS8yMDA0IDEzLzExLzIwMzggPSZndDsgMTI3MDYKMzAvOC8xOTcwIDE2LzIvMTk4NiA9Jmd0OyA1NjUwCjE2LzEyLzE5OTMgMTEvMS8yMTE3ID0mZ3Q7IDQ0OTUyCjIwLzEyLzE5ODUgMjQvMTEvMjA0MiA9Jmd0OyAyMDc5NAozMS8xLzIwMTEgMTYvNi8yMDU4ID0mZ3Q7IDE3MzA0CjEvMi8xOTg5IDExLzEyLzIwMDIgPSZndDsgNTA2MgozMC8xMi8xOTcyIDIxLzcvMjAyMCA9Jmd0OyAxNzM3MQoyNy8zLzE5OTggNC8xMC8yMDkxID0mZ3Q7IDM0MTYwCjI4LzExLzIwMDggMjQvMS8yMDI0ID0mZ3Q7IDU1MzYKMzAvMTEvMTk5OSAxNy81LzIwMjkgPSZndDsgMTA3NjIKMjYvMTAvMjAwOSA5LzkvMjA0MyA9Jmd0OyAxMjM3Mgo3LzEvMjAxMCAyMS8yLzIwMTEgPSZndDsgNDExCjI2LzEyLzE5NzQgMTUvNS8yMTIzID0mZ3Q7IDU0MTk3CjI2LzMvMjAwNCAyMi8xMC8yMDUwID0mZ3Q7IDE3MDEyCjI0LzMvMTk3NiAxOS8zLzIxMzEgPSZndDsgNTY2MDgKMTUvMTEvMTk4MiA3LzQvMjA1MyA9Jmd0OyAyNTcxMgoxMS84LzE5ODcgMTQvNC8yMDIwID0mZ3Q7IDExOTM2CjkvOC8xOTgwIDExLzYvMTk4MyA9Jmd0OyAxMDM3CjgvMTEvMjAwMSA3LzQvMjAzNSA9Jmd0OyAxMjIwNAoyMy84LzE5NzQgMjcvNC8yMTE1ID0mZ3Q7IDUxMzgyCjYvMTEvMTk5NiA5LzgvMjA2NiA9Jmd0OyAyNTQ3OQo2LzUvMTk4OSAyNC8xMi8yMDk0ID0mZ3Q7IDM4NTg0CjgvNi8xOTk1IDEwLzcvMjAyMiA9Jmd0OyA5ODk1CjYvNi8yMDAyIDE1LzEvMjAyMyA9Jmd0OyA3NTI5CjE1LzMvMjAxMiAyNC80LzIxMzcgPSZndDsgNDU2OTYKMjAvMS8xOTg2IDE5LzUvMjEwMSA9Jmd0OyA0MjEyMwozMC8xMC8yMDA3IDEyLzIvMjA5OSA9Jmd0OyAzMzM0NAoxNi8zLzE5NzUgMjEvMy8xOTg1ID0mZ3Q7IDM2NTkKMjgvNC8xOTc2IDIvOC8yMDU2ID0mZ3Q7IDI5MzE3CjIyLzEyLzE5OTAgMjUvNC8yMTE0ID0mZ3Q7IDQ1MDUwCjgvNi8xOTk5IDI5LzEyLzIwMDIgPSZndDsgMTMwMQozMS83LzE5NzUgMTQvNS8yMDQzID0mZ3Q7IDI0NzYwCjUvOS8yMDA1IDMwLzYvMjExOCA9Jmd0OyA0MTIwNgoyMC83LzE5OTYgMjIvNC8yMTEzID0mZ3Q7IDQyNjQ1CjIxLzEvMTk5OSAxMy82LzIwMDAgPSZndDsgNTEwCjE3LzUvMTk5MiAyMy8xLzE5OTUgPSZndDsgOTgyCjI4LzQvMjAwNCAyMy82LzIwMDQgPSZndDsgNTcKMTkvMTEvMTk4MCAyOS81LzIwNzIgPSZndDsgMzM0MzAKMjMvMTAvMTk3MCAxOS8xMC8yMDIyID0mZ3Q7IDE4OTkwCjIzLzYvMjAwNiAzLzExLzIxMjcgPSZndDsgNDQzMjgKMTkvOC8xOTc1IDcvMS8yMDYxID0mZ3Q7IDMxMTg5CjIyLzExLzE5NzIgMTAvMi8yMDkyID0mZ3Q7IDQzNTQ1CjcvMy8xOTk5IDI2LzcvMjA3MSA9Jmd0OyAyNjQ0MAoxNS8xMi8xOTcxIDUvNS8yMDg5ID0mZ3Q7IDQyODc3CjI2LzUvMjAxNSAxMC8xMS8yMTQyID0mZ3Q7IDQ2NTU1CjIvMy8xOTcxIDI5LzUvMjA0OCA9Jmd0OyAyODIxNAoxMy8xLzE5OTggMjUvOS8yMDI0ID0mZ3Q7IDk3NTMKMTIvMy8xOTk4IDQvNy8yMDE4ID0mZ3Q7IDc0MjAKMTkvMTIvMTk3NCA1LzUvMjA0NyA9Jmd0OyAyNjQzNgo3LzEwLzE5OTQgOC8yLzIxNDAgPSZndDsgNTMwODUKMjUvNy8xOTg2IDEzLzcvMjAyMSA9Jmd0OyAxMjc3Mwo3LzQvMjAxNSAxOS81LzIxMDYgPSZndDsgMzMyODAKMTcvMS8xOTkxIDI1LzgvMjAwNiA9Jmd0OyA1NzAwCjI3LzEvMTk3OSAxNy8zLzIwMzYgPSZndDsgMjA4NzAKMjEvOC8yMDEzIDI1LzUvMjAyNCA9Jmd0OyAzOTMxCjcvMTEvMjAwMSAxLzQvMjExMSA9Jmd0OyAzOTk1NwoyMy82LzIwMTEgMTcvMTAvMjAzOCA9Jmd0OyA5OTc5CjExLzExLzE5OTggMTIvNS8yMDI0ID0mZ3Q7IDkzMTUKMjkvNS8xOTcxIDI4LzcvMjA4MiA9Jmd0OyA0MDYwNAo2LzEyLzE5NzQgMTQvMTIvMjAwOCA9Jmd0OyAxMjQyOAoxOC80LzE5NzMgMjUvMTEvMjA4MCA9Jmd0OyAzOTMwNAoxMS82LzE5OTcgNC82LzIwMjkgPSZndDsgMTE2ODIKMTEvNS8xOTk0IDI1LzQvMjA2MyA9Jmd0OyAyNTE4Nwo5LzIvMTk3MiAxOS83LzIwODIgPSZndDsgNDAzMzkKMjUvMS8xOTg0IDUvMi8xOTk5ID0mZ3Q7IDU0OTEKMjYvMi8yMDAwIDMwLzYvMjEzNSA9Jmd0OyA0OTQzMwoyMS8yLzE5NzggMTgvMTAvMjA3MCA9Jmd0OyAzMzg0MwoxMy8xLzIwMTUgMjAvOS8yMTI2ID0mZ3Q7IDQwNzkzCjEyLzExLzE5NzUgMjkvMTIvMTk4OSA9Jmd0OyA1MTYyCjYvNi8xOTg0IDE3LzcvMjA3NSA9Jmd0OyAzMzI3OQoyNi80LzE5OTAgOC8xMC8yMTA4ID0mZ3Q7IDQzMjY1CjEwLzYvMTk5NCAxOS80LzIwNjkgPSZndDsgMjczNDMKMTcvMTIvMjAxMCAyNi85LzIwMjAgPSZndDsgMzU3MgoyMS85LzE5ODIgMi83LzIxNDYgPSZndDsgNTk4MjAKMTgvMTIvMTk4MyAxNS84LzIwNTggPSZndDsgMjcyNzAKMi83LzE5OTMgMTEvMy8yMTAwID0mZ3Q7IDM4OTY5CjIvMTAvMjAwMCA2LzMvMjA5NCA9Jmd0OyAzNDEyNAo1LzIvMTk3NiAyMy8xMS8xOTg3ID0mZ3Q7IDQzMTAKMTUvMTAvMTk4OCAxMC83LzIwMzkgPSZndDsgMTg1MzEKMTIvMy8xOTcxIDE3LzkvMTk4MyA9Jmd0OyA0NTczCjI0LzExLzE5ODIgMjIvMS8yMDQyID0mZ3Q7IDIxNjEwCjIyLzcvMTk3OSA4LzEwLzE5ODUgPSZndDsgMjI3MQoxNi85LzE5OTIgMTQvNS8yMDE1ID0mZ3Q7IDgyNzYKMjkvMTAvMTk4NyA4LzMvMjAxNCA9Jmd0OyA5NjI4CjIwLzcvMTk3MiAyNy84LzE5NzQgPSZndDsgNzY5CjI5LzUvMTk4NiAyMC82LzIwNDQgPSZndDsgMjEyMDgKOS8zLzIwMDYgMTAvMi8yMTAyID0mZ3Q7IDM1MDM3Cj09PSBnZW5lcmF0b3IgPT09CmNvbnNvbGUubG9nKCZxdW90O1xuJnF1b3Q7LnJlcGVhdCgxMjgpLnJlcGxhY2UoLyg/PVxuKS9nLCAoKSA9Jmd0OwooYT1bTWF0aC5yYW5kb20oKSAqIG5ldyBEYXRlLCBNYXRoLnJhbmRvbSgpICogbmV3IERhdGUgKiA0XS5zb3J0KChhLGIpPSZndDthLWIpLm1hcCh4PSZndDsoKHg9bmV3IERhdGUoeCkpLCBbJ3NldE1pbGxpc2Vjb25kcycsJ3NldFNlY29uZHMnLCdzZXRNaW51dGVzJywnc2V0SG91cnMnXS5tYXAoZj0mZ3Q7eD1uZXcgRGF0ZSh4W2ZdKDApKSksIHgpKSkubWFwKGQgPSZndDsgW2QuZ2V0RGF0ZSgpLCBkLmdldE1vbnRoKCkrMSwgZC5nZXRGdWxsWWVhcigpXS5qb2luKCZxdW90Oy8mcXVvdDspKS5qb2luKCZxdW90OyAmcXVvdDspICsgJnF1b3Q7ID0mZ3Q7ICZxdW90OyArIH5+KChhWzFdLWFbMF0pIC8gMTAwMC82MC82MC8yNCArIDEpCikp
15/8/1984 17/3/1988 => 1311
13/1/1996 17/3/2002 => 2256
26/9/1993 10/9/2082 => 32492
17/4/1973 20/10/2082 => 39999
19/1/2001 21/11/2125 => 45597
24/4/1985 13/11/2148 => 59739
29/4/1998 26/9/2001 => 1247
24/6/1979 29/4/1984 => 1772
3/1/1977 16/10/1982 => 2113
9/9/1985 17/3/2078 => 33793
29/7/1978 11/5/2109 => 47769
21/6/1993 3/8/2012 => 6984
6/8/1987 30/10/2049 => 22732
10/2/2004 21/4/2086 => 30022
19/2/1980 27/4/2009 => 10661
5/5/1986 11/2/1989 => 1014
23/5/2015 14/2/2060 => 16339
18/9/2002 3/1/2129 => 46129
11/2/1987 1/1/2081 => 34294
10/11/1996 13/5/2080 => 30501
21/6/1999 18/5/2150 => 55119
18/10/1994 4/1/2055 => 21994
25/11/1975 7/8/2108 => 48469
12/1/2013 27/2/2131 => 43145
4/1/1970 14/7/2037 => 24664
9/11/1979 4/7/1996 => 6083
2/3/2005 11/11/2144 => 51024
1/3/1980 19/5/2075 => 34778
15/2/1991 7/8/2064 => 26838
15/2/2009 29/7/2018 => 3452
21/5/1972 1/2/2129 => 57235
13/12/2010 6/5/2064 => 19504
9/2/1990 13/5/2000 => 3747
21/12/2003 17/8/2065 => 22521
3/1/1978 2/10/2033 => 20362
3/9/2008 17/10/2110 => 37299
27/9/1974 9/7/2079 => 38272
26/11/1976 2/8/2063 => 31661
15/9/1998 21/8/2099 => 36866
18/2/1993 7/1/2114 => 44153
10/3/2005 10/7/2063 => 21307
31/1/2004 13/11/2038 => 12706
30/8/1970 16/2/1986 => 5650
16/12/1993 11/1/2117 => 44952
20/12/1985 24/11/2042 => 20794
31/1/2011 16/6/2058 => 17304
1/2/1989 11/12/2002 => 5062
30/12/1972 21/7/2020 => 17371
27/3/1998 4/10/2091 => 34160
28/11/2008 24/1/2024 => 5536
30/11/1999 17/5/2029 => 10762
26/10/2009 9/9/2043 => 12372
7/1/2010 21/2/2011 => 411
26/12/1974 15/5/2123 => 54197
26/3/2004 22/10/2050 => 17012
24/3/1976 19/3/2131 => 56608
15/11/1982 7/4/2053 => 25712
11/8/1987 14/4/2020 => 11936
9/8/1980 11/6/1983 => 1037
8/11/2001 7/4/2035 => 12204
23/8/1974 27/4/2115 => 51382
6/11/1996 9/8/2066 => 25479
6/5/1989 24/12/2094 => 38584
8/6/1995 10/7/2022 => 9895
6/6/2002 15/1/2023 => 7529
15/3/2012 24/4/2137 => 45696
20/1/1986 19/5/2101 => 42123
30/10/2007 12/2/2099 => 33344
16/3/1975 21/3/1985 => 3659
28/4/1976 2/8/2056 => 29317
22/12/1990 25/4/2114 => 45050
8/6/1999 29/12/2002 => 1301
31/7/1975 14/5/2043 => 24760
5/9/2005 30/6/2118 => 41206
20/7/1996 22/4/2113 => 42645
21/1/1999 13/6/2000 => 510
17/5/1992 23/1/1995 => 982
28/4/2004 23/6/2004 => 57
19/11/1980 29/5/2072 => 33430
23/10/1970 19/10/2022 => 18990
23/6/2006 3/11/2127 => 44328
19/8/1975 7/1/2061 => 31189
22/11/1972 10/2/2092 => 43545
7/3/1999 26/7/2071 => 26440
15/12/1971 5/5/2089 => 42877
26/5/2015 10/11/2142 => 46555
2/3/1971 29/5/2048 => 28214
13/1/1998 25/9/2024 => 9753
12/3/1998 4/7/2018 => 7420
19/12/1974 5/5/2047 => 26436
7/10/1994 8/2/2140 => 53085
25/7/1986 13/7/2021 => 12773
7/4/2015 19/5/2106 => 33280
17/1/1991 25/8/2006 => 5700
27/1/1979 17/3/2036 => 20870
21/8/2013 25/5/2024 => 3931
7/11/2001 1/4/2111 => 39957
23/6/2011 17/10/2038 => 9979
11/11/1998 12/5/2024 => 9315
29/5/1971 28/7/2082 => 40604
6/12/1974 14/12/2008 => 12428
18/4/1973 25/11/2080 => 39304
11/6/1997 4/6/2029 => 11682
11/5/1994 25/4/2063 => 25187
9/2/1972 19/7/2082 => 40339
25/1/1984 5/2/1999 => 5491
26/2/2000 30/6/2135 => 49433
21/2/1978 18/10/2070 => 33843
13/1/2015 20/9/2126 => 40793
12/11/1975 29/12/1989 => 5162
6/6/1984 17/7/2075 => 33279
26/4/1990 8/10/2108 => 43265
10/6/1994 19/4/2069 => 27343
17/12/2010 26/9/2020 => 3572
21/9/1982 2/7/2146 => 59820
18/12/1983 15/8/2058 => 27270
2/7/1993 11/3/2100 => 38969
2/10/2000 6/3/2094 => 34124
5/2/1976 23/11/1987 => 4310
15/10/1988 10/7/2039 => 18531
12/3/1971 17/9/1983 => 4573
24/11/1982 22/1/2042 => 21610
22/7/1979 8/10/1985 => 2271
16/9/1992 14/5/2015 => 8276
29/10/1987 8/3/2014 => 9628
20/7/1972 27/8/1974 => 769
29/5/1986 20/6/2044 => 21208
9/3/2006 10/2/2102 => 35037
=== generator ===
console.log("\n".repeat(128).replace(/(?=\n)/g, () =>
(a=[Math.random() * new Date, Math.random() * new Date * 4].sort((a,b)=>a-b).map(x=>((x=new Date(x)), ['setMilliseconds','setSeconds','setMinutes','setHours'].map(f=>x=new Date(x[f](0))), x))).map(d => [d.getDate(), d.getMonth()+1, d.getFullYear()].join("/")).join(" ") + " => " + ~~((a[1]-a[0]) / 1000/60/60/24 + 1)
))