题意是倒茶,你只知道茶壶里水是L,R,可以壶里留1体积,往两个杯子里倒,最后两个杯子里面茶的体积差不能大于1
首先会想到肯定要向第一个杯子里倒(l+1)/2 体积的茶,这样下一步就可以往另一个杯子里到(l+1)/2 +1体积,这样两次倒掉的总体积是L+2,如果R-1大于L+2的话就需要继续倒,每次最多往一个杯子里倒两体积,倒多的话可能壶里没水,违反规则,这样在特判先R<=L-2的情况,其他情况就可以按上述决策去推次数
#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
int main()
{
ll l,r;
while(cin>>l>>r)
{
if(r<=1)
cout<<0<<endl;
else if(r==2)
cout<<1<<endl;
else if(r-l>=2)
{
if(!l)
l=1;
cout<<(r-2-l)/2+2<<endl;
}
else
cout<<2<<endl;
}
}