- 播放器
Description
shadow喜歡聽音樂,于是v11自己寫了個播放器送給了shadow,這個播放器有一個播放列表,一個“下一首”按鈕,一個“上一首”按鈕,還有一個播放記錄。
一開始播放器會播放播放列表中的第一首歌,當按下“下一首”按鈕時,它會播放當前歌曲在播放列表中的下一首歌,若當前歌曲就是播放列表中的最后一首歌時,它仍會播放播放列表中的最后一首歌;當按下“上一首”按鈕時,它會清除播放記錄中的最后一首歌,并播放清除后播放記錄中的最后一首歌,若清除后播放記錄為空,則播放播放列表中的第一首歌;當按下播放列表中的某一首歌曲,它會播放該首歌曲。
任何時候,當播放器播放一首歌時,如果該歌曲與播放記錄中的最后一首不同或者播放記錄為空,便將該歌曲添加到播放記錄中成為最后一首。
現(xiàn)在shadow對播放器進行了一系列操作,那么你能告訴我shadow進行每一個操作后,播放器在播放哪首歌嗎?
Input
輸入數(shù)據(jù)第一行包含一個整數(shù)T,表示測試數(shù)據(jù)的組數(shù)。對于每組測試數(shù)據(jù):
第一行包含兩個整數(shù)n( 0 < n <= 500 )、m( 0 < m <= 10000),分別表示播放列表中有n首歌曲,shadow進行了m項操作,播放列表中歌的編號依次為1,2,3……n 。
接下來m行,每行為以下三種形式之一:
PRE 表示按下了“上一首”按鈕。
PLAY x 其中x為一個整數(shù)( 0 < x <= n ),表示按下了播放列表中的第x首歌。
NEXT 表示按下了“下一首”按鈕。
Output
對于每組數(shù)據(jù):輸出m行,每行一個整數(shù),表示執(zhí)行了一項操作后播放器正在播放的歌曲。Sample Input
1 5 10 PRE NEXT PLAY 5 NEXT PLAY 5 PLAY 3 NEXT PRE PRE PRESample Output
1 2 5 5 5 3 4 3 5 2 是不是看見中文很親切... 我的錯誤就是原來一直用的gets,這是一個不好的習慣 #include<stdio.h> #include<string.h> #include<math.h> int t[10000]; int main() {int n,i,j,k,h,p,m,q,v,f;char a[10];scanf("%d",&n);for(i=1;i<=n;i++){p=1;h=0;scanf("%d%d",&m,&k);for(j=1;j<=k;j++){scanf("%s",a);if(strcmp(a,"NEXT")==0){if(p+1<=m){printf("%d\n",p+1);if(h==0||t[h]!=p+1){h++;t[h]=p+1;p++;}}else if(p+1>m){printf("%d\n",m);p=m;if(h==0||t[h]!=p){h++;t[h]=p;}}}else if(strcmp(a,"PRE")==0){if(h-1!=0&&h!=0){t[h]=0;h--;printf("%d\n",t[h]);p=t[h];}else if(h-1==0||h==0){h=0;printf("1\n");p=1;}}else{int key;scanf("%d",&key);if(key!=p)t[++h]=key;printf("%d\n",key);p=key;}}}return 0; }總結(jié)
- 上一篇: 模拟电路66(串联型稳压电路2)
- 下一篇: 2017云栖大会 域名专场 诚信经营 从