時間限制: 1 s
空間限制: 128000 kb
題目等級 : ** gold
天使城有乙個火車站,每輛火車都從a方向駛入車站,
再從b方向駛出車站。
為了排程火車,火車站設有停放軌道,可存放5輛火車。已知從a進入車站順序為1、2、3……。現在給你乙個排程方案,判斷是否可行,如果可行,輸出出站順序。
有以下幾種排程方法:
a. 將a上的頭一輛車駛出b方向
b. 將a上的頭一輛車停入暫停軌道
c. 將暫停軌道上最外面的車駛出b方向
輸入描述 input description
輸入第一行乙個整數n(n<30)表示排程方案步驟數目。
下一行乙個字串,有n個大寫字母,表示排程方法。
輸出描述 output description
輸出若不可行(暫停站滿了還停車、暫停站空了還出車),則輸出一行「no」。
若可行,輸出一行「yes」,再輸出若干行,每行乙個整數,表示車出站序列。
樣例輸入 sample input
[樣例輸入1]
6abbcca
[樣例輸入2]
5bacac
樣例輸出 sample output
[樣例輸出1]
yes132
4[樣例輸出2]
no資料範圍及提示 data size & hint
如題【思路】
模擬棧【code】
#include#includeusing
namespace
std;
int cnt,wait[50],station[50],ans[50
],tot,num,n;
char od[50
];int
main()
if(od[i]=='b'
)
wait[++num]=++cnt;
}if(od[i]=='c'
)
ans[++tot]=wait[num];
num--;}}
printf(
"yes\n");
for(int i=1;i<=tot;i++)
printf(
"%d\n
",ans[i]);
return0;
}
一年後寫的另乙份**20180717
#include#include#include
using
namespace
std;
int n,t1,t2,now,sta[11],ans[11
];string
s;int
main()
else sta[++t2]=now++;
if(s[i]=='
c')if(t2==0
)else ans[++t1]=sta[t2--];
}printf(
"yes\n");
for(int i=1;i<=t1;i++)printf("
%d\n
",ans[i]);
return0;
}
codevs 2821 天使之城
題目描述 description 天使城有乙個火車站,每輛火車都從a方向駛入車站,再從b方向駛出車站。為了排程火車,火車站設有停放軌道,可存放5輛火車。已知從a進入車站順序為1 2 3 現在給你乙個排程方案,判斷是否可行,如果可行,輸出出站順序。有以下幾種排程方法 a.將a上的頭一輛車駛出b方向 b...
9106 天使的起誓
time limit 10 second memory limit 2 mb 問題描述 tenshi非常幸運的被選為掌管智慧型之匙的天使。在正式任職之前,她必須和其他新當選的天使一樣,要宣誓。宣誓儀式是每位天使各自表述自己的使命,她們的發言稿被放在n個呈圓形排列的寶盒中。這些寶盒按順時針方向被編上號...
七天使的通訊
題目描述 n個天使排成一條直線,某些天使之間需要互相聯絡,他們之間的通訊可以通過黑白兩種通道中的一種 所有通道必須在直線同側 另一側是地面 為了保證通訊效率,同種顏色的所有通道之間不能相交。請計算能否建立這種通訊方案。輸入 第一行乙個數t,表示接下來有t個詢問。對於每個詢問 第一行兩個數n,m,分別...