B - 竞技游戏
Description
Input
输入数据第一行为一整数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)。
(-50<= a <= 50), (1 <= b <= n)。
Output
对于每组数据,输出一个整数占一行,表示操作后的序列中的最大整数。
Sample Input
2
2 2
1 2
1 1
-1 2
3 4
1 5 6
1 1
1 1
0 1
-1 1
Sample Output
4
6
水题直接贴代码:
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
int n, m, a, b;
int arr[105];
int main()
{
int t = 0;
scanf("%d", &t);
while(t--)
{
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; i++)
{
scanf("%d", &a);
arr[i] = a;
}
for(int i = 1; i <= m; i++)
{
scanf("%d%d", &a, &b);
if(a==0) continue;
else if(a>0) arr[b] *= 2;
else arr[b] += 2;
}
int max=0;
for(int i = 1; i <= n; i++)
{
if(arr[i] > max) max=arr[i];
}
printf("%d\n", max);
}
return 0;
}