记录编号 449035 评测结果 AAAAAAAAAA
题目名称 [Codeforces 819A] B先生和无聊的游戏 最终得分 100
用户昵称 Gravatar小字、小瓶子 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2017-09-13 18:56:13 内存使用 0.31 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int np[50],nb[50];
int main()
{
	freopen("MrBA1.in","r",stdin);
	freopen("MrBA1.out","w",stdout);
	int a,b,l,r,sum=0;
	cin>>a>>b>>l>>r;
	if(l==r)
	{
		cout<<1;
		return 0;
	}
	if(a<=b)
	{
		if(r-l>=2*a+2*b)
		{
			cout<<a+1;
			return 0;
		}
		l%=(2*a+2*b);
		if(!l)
			l=2*a+2*b; 
		r%=(2*a+2*b);
		if(!r)
			r=2*a+2*b;
		for(int i=1;i<=a;i++)
			np[i]=i;
		for(int i=a+1;i<=a+b;i++)
			np[i]=a;
		for(int i=a+b+1;i<=2*a+b-1;i++)
			np[i]=i-a-b;
		for(int i=2*a+b;i<=2*a+2*b;i++)
			np[i]=a+1;
		if(l<=r)
		{
			int sum=0;
			for(int i=l;i<=r;i++)
				nb[np[i]]=1;
			for(int i=1;i<=2*a+2*b;i++)
			{
				if(nb[i])
					sum++;
			}
			cout<<sum;
			return 0;
		}
		if(l>r)
		{
			int sum=0;
			for(int i=l;i<=2*a+2*b;i++)
				nb[np[i]]=1;
			for(int i=1;i<=r;i++)
				nb[np[i]]=1;
			for(int i=1;i<=2*a+2*b;i++)
			{
				if(nb[i])
					sum++;
			}
			cout<<sum;
			return 0;
		}
	}
	if(a>b)
	{
		if((r-l)>=(2*a+2*b))
		{
			cout<<2*a-b;
			return 0;
		}
		l%=(2*a+2*b);
		if(!l)
			l=2*a+2*b;
		r%=(2*a+2*b);
		if(!r)
			r=2*a+2*b;
		for(int i=1;i<=a;i++)
			np[i]=i;
		for(int i=a+1;i<=a+b;i++)
			np[i]=a;
		for(int i=a+b+1;i<=a+2*b;i++)
			np[i]=i-a-b;
		for(int i=a+2*b+1;i<=2*a+b;i++)
			np[i]=i-2*b;
		for(int i=2*a+b+1;i<=2*a+2*b;i++)
			np[i]=2*a-b;
		if(l<=r)
		{
			int sum=0;
			for(int i=l;i<=r;i++)
				nb[np[i]]=1;
			for(int i=1;i<=2*a+2*b;i++)
			{
				if(nb[i])
					sum++;
			}
			cout<<sum;
			return 0;
		}
		if(l>r)
		{
			int sum=0;
			for(int i=l;i<=2*a+2*b;i++)
				nb[np[i]]=1;
			for(int i=1;i<=r;i++)
				nb[np[i]]=1;
			for(int i=1;i<=2*a+2*b;i++)
			{
				if(nb[i])
					sum++;
			}
			cout<<sum;
			return 0;
		}
	}
	return 0;
}