[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 }

浙公网安备 33010602011771号