蛤玮准备礼物

蛤玮的妹子要过生日了,经过千挑万选,蛤玮决定给妹子买一盒水彩铅笔,然而卖多少个才合适呢.机智的蛤玮决定数一数今天是妹子出生的第多少天,然后就买那么多根铅笔.

给出蛤玮妹子的生日和今天的日期,求蛤玮一共需要买多少.
注意:生日当天算第0天.
Input

T(1<=T<=1000),表示数据组数.

每组数据一行y1,m1,d1,y2,m2,d2,其中y1,m1,d1表示妹子生日的年月日,y2,m2,d2表示蛤玮所在时空的当前天的年月日.
(1900<=y<=1000000, 1<=m<=12, 1<=d<=当月应有天数).输入保证当前天在妹子生日之后.
Output

每组数据输出一行,蛤玮要买多少根铅笔.
Sample Input

2
1995 10 24 1995 10 25
1996 1 9 1996 3 7
Sample Output

1
58

#include <bits/stdc++.h>
#define ll long long
#define INF 0x3f3f3f3f
#define mem(shuzu,value) memset(shuzu,value,sizeof shuzu)
using namespace std;
const int M=1000000+100;
int days[13]= {0,31,28,31,30,
               31,30,31,31,
               30,31,30,31
              };
int all[13];
bool is(int i) {
    if((i%4==0&&i%100!=0)||i%400==0) {
        return 1;
    }
    return 0;
}
int Run[M];
int main() {
    ios::sync_with_stdio(false);
    int t;
    all[1]=31;
    mem(Run,0);
    int cnt=0;
    for(int i=1; i<13; i++) {
        all[i]=cnt+days[i-1];
        cnt+=days[i-1];
        //cout<<i<<" "<<all[i]<<endl;
    }
    cnt=0;
    for(int i=1900; i<M; i++) {
        int a=is(i);
        Run[i]=Run[i-1]+a;
        //cout<<i<<" "<<Run[i]<<endl;
    }
    cin>>t;
    while(t--) {
        int y1,y2,m1,m2,d1,d2;

        cin>>y1>>m1>>d1>>y2>>m2>>d2;
        ll ans=0;
        ans+=(365*(y2-y1));
       // cout<<ans<<endl;
        ans=ans+Run[y2-1]-Run[y1-1];
       // cout<<ans<<endl;
        ans=ans+all[m2]+d2;
       // cout<<ans<<endl;
        ans=ans-d1-all[m1];
       // cout<<ans<<endl;
        if(m1>2&&is(y1)) {
            ans--;
        }
        if(m2>2&&is(y2)) {
            ans++;
        }

        cout<<ans<<endl;
    }
    return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值