Escape from Stones CodeForces - 264A
原题链接
考察:思维 or 搜索
错误思路:
二分模拟,精度爆炸
正确思路一:
搜索....我是fw
正确思路二:
双指针设置\(l = 1,r = n\),如果\(s[i]==l\),说明右边不会在有人,\(s[i]==r\)左边不会在有人.
Code
#include <iostream>
#include <cstring>
using namespace std;
const int N = 1000010;
char s[N];
int pos[N];
int main()
{
scanf("%s",s+1);
int len = strlen(s+1);
int l = 1,r = len;
for(int i=1;i<=len;i++)
{
if(s[i]=='l') pos[r--] = i;
else pos[l++] = i;
}
for(int i=1;i<=len;i++) printf("%d\n",pos[i]);
return 0;
}