模拟~
分析1(WA):涉及对象排序 -- 可是这个二分处来的精度太小了, 后面才意识到 [0, x^(10^6)]这个上届要么放大, 要么缩小x, 在计算机计算范围内都难以实现,涉及高精度;
分析2(AC) :二分特点是走进区间后, 操作范围都不能超过此区间, 走向左右区间就决定了当前值为最大或者最小值~~~, 数组记录就行, dfs过程其实for一遍就能实现~~~
#include <iostream>
#include <cstdio>
#include <queue>
#include <cstring>
#include <cmath>
#include <vector>
#include <set>
#include <stack>
#include <algorithm>
//#include "myAlgorithm.h"
#define MAX 1000005
#define INF (1e8 + 5)
#define eps 1e-30
#define Rep(s, e) for( int i = s; i <= e; i++)
#define Cep(e, s) for( int i = e; i >= s; i --)
using namespace std;
int n;
char str[MAX];
int a[MAX];
int head, tail;
void setInterval(int num){
if(num == n + 1)return ;
if(str[num - 1] == 'r'){
a[head ++] = num;
}else{
a[tail --] = num;
}
setInterval(num + 1);
}
int main()
{
//freopen("in.txt", "w", stdout);
while(gets(str)){
n = strlen(str);
head = 1; tail = n;
setInterval(1);
Rep(1, n)cout<<a[i]<<endl;
}
return 0;
}
/*
*/