6050:競技遊戲

題目描述

小灰灰小東東在玩一種競技遊戲。在遊戲中,小灰灰小東東由n個正整數組成的序列以及m條操作指令,需要小東東按照指令來對n個整數進行操作。其中每條指令都包括二個整數(a, b),意義如下:

如果a大於0,表示將序列中第b個數乘於2

如果a小於0,表示將序列中第b個數加上2

如果a等於0,則忽略此條指令。

遊戲結束後,小東東需要求出序列中的最大值。現在小東東求助於你,希望你能用計算機編程求出他需要的答案。題目保證計算結果在int的表示範圍內。

輸入格式

輸入數據第一行爲一整數T,表示有T組數據。每組輸入數據第一行有二個整數n, m, (1 <= n <= 100), (1 <= m <= 100), 第二行有n個整數(1 ~100),表示初始序列,編號從1...n。接着是m行表示m條指令,每行共有2個用空格隔開的整數a b,(-50<= a <= 50), (1 <= b <= n)

輸出

對於每組數據,輸出一個整數佔一行,表示操作後的序列中的最大整數。

樣例輸入

2
2 2
1 2
1 1
-1 2
3 4
1 5 6
1 1
1 1
0 1
-1 1

樣例輸出

4
6

#include<stdio.h>
int main()
{
	int T,n,m,i,a,b,max,s[101];
		scanf("%d",&T);
	while(T--)
	{
		scanf("%d %d",&n,&m);
		for(i=1;i<=n;i++)
			scanf("%d",&s[i]);
		while(m--)
		{
			scanf("%d %d",&a,&b);
			if(a>0)
				s[b]=s[b]*2;
			else if(a<0)
				s[b]=s[b]+2;
		}
		max=s[1];
		for(i=1;i<=n;i++)
			if(max<s[i])
				max=s[i];
			printf("%d\n",max);
	}
	return 0;
}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章