abc 376B
作者:
Air1222
,
2024-10-24 19:45:52
,
所有人可见
,
阅读 3
//不好找数学规律,数据范围小,直接模拟即可
//注意一共只有两个变量
//可以复用,减少一半代码量
#include <iostream>
using namespace std;
int n,m;
int ans;
int l=1,r=2;
void move(char op,int p)
{
int d,k;
if(op=='L')
{
d=l;
k=r;
}
else
{
d=r;
k=l;
}
int sum1=0;
int temp=d;
while(d!=p)
{
d++;
sum1++;
if(d==n+1) d=1;
if(d==k)
{
sum1=1e9;
break;
}
}
int sum2=0;
d=temp;
while(d!=p)
{
d--;
sum2++;
if(d==0) d=n;
if(d==k)
{
sum2=1e9;
break;
}
}
if(op=='L') l=p;
else r=p;
ans+=min(sum1,sum2);
}
int main()
{
cin>>n>>m;
while(m--)
{
char op;
int p;
cin>>op>>p;
move(op,p);
}
cout<<ans;
return 0;
}