[Codeforces Round #162 (Div. 2)]C. Escape from Stones

地址:http://codeforces.com/contest/265/problem/C

给一段长度为n的序列,新建一个数组来记录石头位置信息,遇到r从头往尾记录,遇到l从尾往头记录

一开始都开的是大小为106的数组,用了1406ms才过,觉得太慢,用了动态分配,时间上并未节省,只不过减少了内存开销

 1 #include <iostream>
 2 #include <algorithm>
 3 using namespace std;
 4 
 5 string in;
 6 
 7 int main()
 8 {
 9     int i,j,k,n;
10     getline(cin,in);
11     n=(int)in.size();
12     int* s=new int[n];
13     j=0;
14     k=n-1;
15     for(i=0;i<n;i++)
16     {
17         if("r"==in.substr(i,1)) s[j++]=i+1;
18         else s[k--]=i+1;
19     }
20     for(i=0;i<n;i++)
21     {
22         cout<<s[i]<<endl;
23     }
24     return 0;
25 }

 

posted @ 2013-01-24 12:16  tjsuhst  阅读(192)  评论(0)    收藏  举报