你將要實現乙個功能強大的整數序列編輯器。
在開始時,序列是空的。
1、「i x」,在游標處插入數值x。
2、「d」,將游標前面的第乙個元素刪除,如果前面沒有元素,則忽略此操作。
3、「l」,將游標向左移動,跳過乙個元素,如果左邊沒有元素,則忽略此操作。
4、「r」,將游標向右移動,跳過乙個元素,如果右邊沒有元素,則忽略次操作。
5、「q k」,假設此刻游標之前的序列為a1,a2,…,an,輸出max1≤i≤ksi,其中si=a1+a2+…+ai。
在這裡插入**片#include using namespace std;
const int n=1e6+100;
int t,x,sum[n],f[n],now;
stacka,b,c;
int main()
if (ch=='d')
if (!a.empty())//只要棧不為空,就刪除
a.pop();
if (ch=='l')//左傾思想(博古+*****)(手動滑稽)
if(!a.empty())//只要不為空
b.push(a.top()),a.pop();//a+b等於整個插入序列,b負責管理當前游標右邊的序列.
if (ch=='r')//右傾思想(陳獨秀)(手動滑稽)
}if (ch=='q')
getchar();//換行符讀入}}
return 0;
}
棧 字首和 數列編輯器
第一行包含乙個數字n,表示操作的個數。接下來包含n 行,每行包含一條命令。對於每個q k 命令,輸出乙個整數表示這個操作的答案。sample input 8 i 2i 1 i 1q 3ld rq 2 sample output2 3因為k kk保證在游標前且是字首和是1 11到k kk,那麼 設定乙...
128 編輯器 雙棧
你將要實現乙個功能強大的整數序列編輯器。在開始時,序列是空的。1 i x 在游標處插入數值x。2 d 將游標前面的第乙個元素刪除,如果前面沒有元素,則忽略此操作。3 l 將游標向左移動,跳過乙個元素,如果左邊沒有元素,則忽略此操作。4 r 將游標向右移動,跳過乙個元素,如果右邊沒有元素,則忽略次操作...
利用棧做行編輯器
問題 include include include includeusing namespace std define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2 ty...