维护最新的R,遇到L时如果R出现过就更新答案。
#include <cstdio> #include <algorithm> using namespace std; int n,x,r=-1,ans=-1; char a[200005]; int main(){ scanf("%d%s",&n,a); for(int i=0;i<n;i++){ scanf("%d",&x); if(a[i]=='R') r=x; else if(r>-1) ans=(ans==-1)?(x-r)/2:min(ans,(x-r)/2); } printf("%d",ans); }