mhdew

LOJ1414

Mar 26th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.59 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. //484997147
  3. using namespace std;
  4. #define in() freopen("in.txt", "r", stdin)
  5. #define out() freopen("out.txt", "w", stdout)
  6.  
  7. long long checkLP(long long a)
  8. {
  9.     long long flag=0;
  10.  
  11.     if(a%4==0){
  12.         if(a%100==0){
  13.             if(a%400==0){
  14.                 flag=1;
  15.             }
  16.             else{
  17.                 flag=0;
  18.             }
  19.         }
  20.         else{
  21.             flag=1;
  22.         }
  23.     }
  24.     else{
  25.         flag=0;
  26.     }
  27.  
  28.     return flag;
  29. }
  30.  
  31. long long sd(char m1[],long long d1)
  32. {
  33.     long long rv;
  34.  
  35.     if(m1[0]=='J' && m1[1]=='a'){
  36.         rv=1;
  37.     }
  38.     else if(m1[0]=='F'){
  39.         rv=1;
  40.     }
  41.     else{
  42.         rv=0;
  43.     }
  44.  
  45.     return rv;
  46. }
  47.  
  48. long long ed(char m2[],int d2)
  49. {
  50.     long long rv;
  51.     if(m2[0]=='J' && m2[1]=='a'){
  52.         rv=0;
  53.     }
  54.     else if(m2[0]=='F'){
  55.         if(d2==29){
  56.             rv=1;
  57.         }
  58.         else{
  59.             rv=0;
  60.         }
  61.     }
  62.     return rv;
  63. }
  64.  
  65. int main()
  66. {
  67.     in();
  68.     out();
  69.     long long t;
  70.     scanf("%lld", &t);
  71.     for(long long i=1;i<=t;i++){
  72.         long long cunt=0;
  73.         char m1[10], m2[10];
  74.         long long d1,d2;
  75.         long long y1,y2;
  76.  
  77.         scanf("%s %lld, %lld", &m1,&d1,&y1);
  78.         scanf("%s %lld, %lld", &m2,&d2,&y2);
  79.  
  80.         if(y1==y2){
  81.             if(checkLP(y1)==1){
  82.                 if(sd(m1,d1)==1){
  83.                     cunt=1;
  84.                 }
  85.                 else{
  86.                     cunt=0;
  87.                 }
  88.             }
  89.             else{
  90.                 cunt=0;
  91.             }
  92.         }
  93.         else if((y2-y1)<=3){
  94.             for(long long jj=y1;jj<=y2;jj++){
  95.                 if(checkLP(jj)==1){
  96.                     cunt++;
  97.                 }
  98.             }
  99.         }
  100.         else{
  101.             long long x=y1, y=y2;
  102.             for(;;){
  103.                 if(checkLP(x)==1){
  104.                     break;
  105.                 }
  106.                 x++;
  107.             }
  108.             for(;;){
  109.                 if(checkLP(y)==1){
  110.                     break;
  111.                 }
  112.                 y--;
  113.             }
  114.           //  printf("%lld %lld\n", x,y);
  115.             long long temp=y2-y1;
  116.             long long ans=temp/4;
  117.             ans++;
  118.           //  printf("%lld\n", ans);
  119.  
  120.             if(x==y1){
  121.                 if(sd(m1,d1)==0){
  122.                     ans--;
  123.                 }
  124.             }
  125.             if(y==y2){
  126.                 if(ed(m2,d2)==0){
  127.                     ans--;
  128.                 }
  129.             }
  130.             cunt=ans;
  131.         }
  132.  
  133.         printf("Case %lld: %lld\n", i,cunt);
  134.     }
  135.     return 0;
  136. }
Add Comment
Please, Sign In to add comment