hdu 2018

一个悲伤的题,2018就四个因子,去除1和2018,然后快乐就行

#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
typedef long long ll;
int main()
{
    ll a, b, c, d;
    while(cin>>a>>b>>c>>d)
    {
        ll ans = 0;
        ll t1 = b / 2018 - a / 2018;
        if(a % 2018 == 0) t1++;
        ll t2 = d / 2018 - c / 2018;
        if(c % 2018 == 0) t2++;
        ans = t1 * (d - c + 1) + t2 * (b - a + 1) - t1 * t2;
        ll t3 = b / 1009 - a / 1009;
        if(a % 1009 == 0)
            t3++;
        t3 -= t1;
        ll t4 = d / 1009 - c / 1009;
        if(c % 1009 == 0) t4++;
        t4 -= t2;
        ll t5 = b / 2 - a / 2;
        if(a % 2 == 0) t5++;
        ll t6 = d / 2 - c / 2;
        if(c % 2 == 0)
            t6++;
        ans += t3 * (t6 - t2) + t4 * (t5 - t1);
        cout<<ans<<endl;
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/tp25959/p/10305809.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值