Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
34667 | 武云帆 | 【S】T1 | C++ | 解答错误 | 54 | 1000 MS | 256 KB | 1164 | 2024-11-12 15:14:35 |
#include<bits/stdc++.h> using namespace std; long long l,r; long long ans=0; const int mod=1e9+7; int main(){ cin>>l>>r; l=l-1; long long z=3,k=1; long long l1=l; long long l2=0; long long r1=r; while(l>=z){ l-=z; r-=z; l2+=z; z+=2; k++; } long long z2=z; z/=2; if(k%2==1){ for(int i=l2+1;i<=l1;i++){ if(i-l2<=z+1) ans-=i; else ans+=i; ans=(ans+mod)%mod; } } else{ for(int i=l2+1;i<=l1;i++){ if(i-l2<=z+1) ans+=i; else ans-=i; ans=(ans+mod)%mod; } } //cout<<ans<<" "; z=z2,k=1; while(r>=z){ r-=z; l2+=z; z+=2; k++; } z/=2; if(k%2==1){ for(int i=l2+1;i<=r1;i++){ if(i-l2<=z+1) ans+=i; else ans-=i; ans=(ans+mod)%mod; } } else{ for(int i=l2+1;i<=r1;i++){ if(i-l2<=z+1) ans-=i; else ans+=i; ans=(ans+mod)%mod; } } cout<<ans<<endl; }