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;
}
posted @ 2021-07-23 09:44  acmloser  阅读(24)  评论(0编辑  收藏  举报