显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int A[60];
int vis[60];
int main(){
freopen("MrBA1.in","r",stdin);
freopen("MrBA1.out","w",stdout);
int a,b,l,r;
scanf("%d %d %d %d",&a,&b,&l,&r);
for(int i=1;i<=a;i++)
A[i]=i;
for(int i=1;i<=b;i++)
A[i+a]=a;
for(int i=a+b;i>b;i--)
vis[A[i]]=1;
for(int i=1;i<=a;i++)
for(int j=1;j<=26;j++)
if(!vis[j]){
vis[j]=1;
A[i+a+b]=j;
break;
}
for(int i=1;i<=b;i++)
A[i+a+b+a]=A[a+b+a];
memset(vis,0,sizeof(vis));
l=l%((a+b)*2);
r=r%((a+b)*2);
if(!r)
r=(a+b)*2;
int ans=0;
for(int i=l;i!=r;i++){
if(i==(a+b)*2+1)
i=1;
if(!vis[A[i]]){
vis[A[i]]=1;
ans++;
}
}
printf("%d\n",ans);
return 0;
}