1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
| #include<bits/stdc++.h> using namespace std; #define int long long inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9' ){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(x <<3)+(ch^48);ch=getchar();}return x*f;}
int n, m, i, j, k, T; int mp[10]={6, 2, 5, 5, 4, 5, 6, 3, 7, 6}; int b[10][10]= { 0, 4, 3, 3, 4, 3, 2, 3, 1, 2, 4, 0, 5, 3, 2, 5, 6, 1, 5, 4, 3, 5, 0, 2, 5, 4, 3, 4, 2, 3, 3, 3, 2, 0, 3, 2, 3, 2, 2, 1, 4, 2, 5, 3, 0, 3, 4, 3, 3, 2, 3, 5, 4, 2, 3, 0, 1, 4, 2, 1, 2, 6, 3, 3, 4, 1, 0, 5, 1, 2, 3, 1, 4, 2, 3, 4, 5, 0, 4, 3, 1, 5, 2, 2, 3, 2, 1, 4, 0, 1, 2, 4, 3, 1, 2, 1, 2, 3, 1, 0 }; int mth[15]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, 0, 0}; int n1, yu1, r1, s1, f1, m1; int n2, yu2, r2, s2, f2, m2; int ans=0; const int ping_nian=106904682; const int run_nian=107197568; void bian(int x, int y, int z) { int sum=0;
while(z--) sum+=b[x%10][y%10], x/=10, y/=10;
ans+=sum; } int pan(int x) { if(x%400==0) return 1; if(x%100==0) return 0; if(x%4==0) return 1; return 0; } int cong() { while(n1!=n2 || yu1!=yu2 || r1!=r2 || s1!=s2 || f1!=f2 || m1!=m2) { if(m1<59) bian(m1, m1+1, 2), ++m1; else { bian(m1, 0, 2); m1=0; if(f1<59) bian(f1, f1+1, 2), ++f1; else { bian(f1, 0, 2); f1=0; if(s1<23) bian(s1, s1+1, 2), ++s1; else { bian(s1, 0, 2); s1=0; if(r1<(yu1==2 ? (pan(n1) ? 29 : 28) : mth[yu1])) bian(r1, r1+1, 2), ++r1; else { bian(r1, 1, 2); r1=1; if(yu1<12) bian(yu1, yu1+1, 2), ++yu1; else { bian(yu1, 1, 2); yu1=1; bian(n1, n1+1, 4); ++n1; } } } } } } return ans; } void zhuan() { while(n1+1<n2) { if(pan(n1)) { if(yu1<2) ans+=run_nian; else if(yu1==2 && r1<29) ans+=run_nian; else ans+=ping_nian; } else if(pan(n1+1)) { if(yu1<2) ans+=ping_nian; else if(yu1==2 && r1<29) ans+=ping_nian; else ans+=run_nian; } else ans+=ping_nian; bian(n1, n1+1, 4), ++n1; } } signed main() {
scanf("%lld%lld%lld%lld%lld%lld", &n1, &yu1, &r1, &s1, &f1, &m1); scanf("%lld%lld%lld%lld%lld%lld", &n2, &yu2, &r2, &s2, &f2, &m2); zhuan(); printf("%lld", cong());
return 0; }
|