版权声明:《学习技巧》每次使用单边大脑的时间不要太久,连续使用左边大脑30分钟就如同连续使用左臂30分钟一样,周期性的交换让大脑两侧能够轮流休息,左脑活动包括了循序渐进的工作,解决逻辑问题与分析,而右脑活动包括了隐喻,创造性思考,模式匹配和可视化。 https://blog.csdn.net/intmainhhh/article/details/83034969
题目传送门
题目:
这题并不难,下面代码:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e6+10;
int l=200000,r=l-1,t,q;
int pos[maxn];
int main() {
char s;
cin>>q;
while(q--) {
cin>>s>>t;
if(s=='L') l--,pos[t]=l;
else if(s=='R') r++,pos[t]=r;
else if(s=='?') cout<<min(pos[t]-l,r-pos[t])<<endl;
}
}
/*
const int maxn=1000+10;
int arr[maxn];
int vis[maxn];
int main() {
int n,len;
cin>>n>>len;
int ans=0;
int flag=0;
for(int i=1; i<=n; i++) {
cin>>arr[i];
if(!arr[i]) continue;
ans++;
int l=(i-len+1)<1?1:(i-len+1);
int r=(i+len-1)>n?n:(i+len-1);
//cout<<l<<" "<<r<<endl;
vis[l]++;
vis[r+1]--;
}
for(int i=1; i<=n; i++) {
vis[i]+=vis[i-1];
}
// for(int i=1; i<=n; i++)
// cout<<vis[i]<<" ";
//cout<<endl;
for(int i=1; i<=n; i++) {
if(!vis[i]) {
cout<<-1;
return 0;
}
}
for(int i=1; i<=n; i++) {
int l=(i-len+1)>=1?(i-len+1):1;
int r=(i+len-1)>n?n:(i+len-1);
if(vis[l]>=2&&vis[r]>=2) {
int flag=0;
for(int j=l+1; j<=r-1; j++) {
if(vis[j]<2)
flag=1;
}
if(!flag) {
//cout<<l<<" "<<r<<endl;
ans--;
for(int j=l; j<=r; j++)
vis[j]--;
}
}
}
cout<<ans<<endl;
}
*/
/*
int main()
{
int t;
cin>>t;
while(t--)
{
int L,v,l,r;
cin>>L>>v>>l>>r;
int ans=0;
ans=((l-1)/v)+((L/v-(r/v)));
cout<<ans<<endl;
}
return 0;
}
*/