提交时间:2024-11-12 14:33:10
运行 ID: 34653
#include<bits/stdc++.h> using namespace std; #define int long long #define it __int128_t const int M=1e9+7; 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; // cout<<x<<" "<<L<<" "<<R<<" "<<k<<endl; // cout<<((L+R)*(R-L+1)/2%M)<<" "<<((sl+((L+R)*(R-L+1)/2%M))%M)<<endl; if(R<k){sr=(sr+((it)(L+R)*(R-L+1)/2%M))%M;} else{ sr=(sr+((it)(L+k)*(k-L+1)/2%M))%M; // cout<<sr<<endl; sr=(sr-((it)((R+k+1)*(R-k)/2)%M)+M)%M; } // cout<<sr<<endl; if(x%2==0)sr=(M-sr)%M; // cout<<sr<<endl; x=sqrt(l-1),L=x*x,R=l-1,k=x*x+x; if(R<k){sl=(sl+((it)(L+R)*(R-L+1)/2%M))%M;} else{ sl=(sl+((it)(L+k)*(k-L+1)/2%M))%M; sl=(sl-((it)((R+k+1)*(R-k)/2)%M)+M)%M; } if(x%2==0)sl=(M-sl)%M; // cout<<sl<<" "<<sr<<endl; int ans=(sr-sl+M)%M; printf("%lld\n",ans); return 0; }