天使城有乙個火車站,每輛火車都從a方向駛入車站,
再從b方向駛出車站。
為了排程火車,火車站設有停放軌道,可存放5輛火車。已知從a進入車站順序為1、2、3……。現在給你乙個排程方案,判斷是否可行,如果可行,輸出出站順序。
有以下幾種排程方法:
a. 將a上的頭一輛車駛出b方向
b. 將a上的頭一輛車停入暫停軌道
c. 將暫停軌道上最外面的車駛出b方向
輸入第一行乙個整數n(n<30)表示排程方案步驟數目。
下一行乙個字串,有n個大寫字母,表示排程方法。
輸出若不可行(暫停站滿了還停車、暫停站空了還出車),則輸出一行「no」。
若可行,輸出一行「yes」,再輸出若干行,每行乙個整數,表示車出站序列。
[樣例輸入1]6abbcca [樣例輸入2]5bacac
[樣例輸出1]yes1324 [樣例輸出2]no
code:
#include #include #define size 31
int n, k = 0, i;using namespace std;
int outp[size]; // 儲存出棧順序
stacks;
int main(void)
else if (c == 'b') // 入棧
s.push(++k);
} else // 出棧
outp[++outp[0]] = s.top();
s.pop();
} }printf("yes\n");
for (i = 1; i <= outp[0]; i++)
return 0;
}
char c;
scanf("%d", &n);
for (i = 1; i <= n; i++)
else if (c == 'b') // 入棧
s.push(++k);
} else // 出棧
outp[++outp[0]] = s.top();
s.pop();
} }printf("yes\n");
for (i = 1; i <= outp[0]; i++)
return 0;
}
codevs2821 天使之城
時間限制 1 s 空間限制 128000 kb 題目等級 gold 天使城有乙個火車站,每輛火車都從a方向駛入車站,再從b方向駛出車站。為了排程火車,火車站設有停放軌道,可存放5輛火車。已知從a進入車站順序為1 2 3 現在給你乙個排程方案,判斷是否可行,如果可行,輸出出站順序。有以下幾種排程方法 ...
codevs 2821 天使之城
題目描述 description 天使城有乙個火車站,每輛火車都從a方向駛入車站,再從b方向駛出車站。為了排程火車,火車站設有停放軌道,可存放5輛火車。已知從a進入車站順序為1 2 3 現在給你乙個排程方案,判斷是否可行,如果可行,輸出出站順序。有以下幾種排程方法 a.將a上的頭一輛車駛出b方向 b...
每日一題 37 兩個佇列實現棧
題目來自劍指offer 題目 兩個佇列實現棧 思路 乙個佇列存資料,另乙個佇列作為轉存資料的臨時佇列。注意 哪個佇列存資料不定,那個佇列作為臨時佇列也不定。壓棧時 找到乙個有資料的佇列,放入資料。如果兩個佇列都為空,則隨便找乙個佇列存資料。出棧時 找到那個存資料的佇列,設其資料個數為n。1 對數列執...