提交时间:2024-11-12 15:21:26
运行 ID: 34673
#include<bits/stdc++.h> using namespace std; #define int long long const int M=1e9+7,ny=5e8+4; int l,r,sl,sr; signed main(){ scanf("%lld%lld",&l,&r); int x=sqrt(r),L=x*x,R=r,k=x*x+x; if(R<k){sr=(sr+(L+R)%M*(R-L+1)%M*ny%M)%M;} else{ sr=(sr+(L+k)%M*(k-L+1)%M*ny%M)%M; sr=(sr-(R+k+1)%M*(R-k)%M*ny%M+M)%M; } if(x%2==0)sr=(M-sr)%M; x=sqrt(l-1),L=x*x,R=l-1,k=x*x+x; if(R<k){sl=(sl+(L+R)%M*(R-L+1)%M*ny%M)%M;} else{ sl=(sl+(L+k)%M*(k-L+1)%M*ny%M)%M; sl=(sl-(R+k+1)%M*(R-k)%M*ny%M+M)%M; } if(x%2==0)sl=(M-sl)%M; // cout<<sl<<" "<<sr<<endl; int ans=((sr-sl)%M+M)%M; printf("%lld\n",ans); return 0; }