题目链接:题目
大意:
找一定范围内递增且间隔递增的数列的最大长度。
思路:
间隔尽可能小数列就尽可能长,如1 2 4 7…间隔是等差数列,最后达到的数字就是等差数列求和 。遍历长度n,不断增大,知道超出范围r。
代码:
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define MOD 1000000007
int solve(int l,int r){
int i=0;
for(i=0;;i++){
if(1ll*i*(i+1)/2>r-l)break;
}
return i;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--){
int l,r;
cin>>l>>r;
cout<<solve(l,r)<<endl;
}
return 0;
}