AcWing
4996. 平方差
不难发现,满足题意的x
的个数,即区间中 奇数的个数 和 被4整除的数的个数 之和。
$O(1)$.
#include <bits/stdc++.h>
using namespace std;
int main(){
int l, r;
cin >> l >> r;
int res = 0;
int ll = l, rr = r;
while(ll <= rr){
if(ll % 2 && rr % 2) break;
if(ll % 2 == 0) ll ++;
if(rr % 2 == 0) rr --;
}
if(ll <= rr && ll % 2 && rr % 2) res += (rr - ll) / 2 + 1;
ll = l, rr = r;
while(ll <= rr){
if(!(ll % 4) && !(rr % 4)) break;
if(ll % 4 != 0) ll ++;
if(rr % 4 != 0) rr --;
}
if(ll <= rr && !(ll % 4) && !(rr % 4)) res += (rr - ll) / 4 + 1;
cout << res;
return 0;
}