题目描述
小明在他的果园里种了一些苹果树,为了保证苹果的品质,在种植过程中要进行若干轮蔬果操作,也就是提前从树上把不好的苹果去掉。第一轮蔬果操作开始前,小明记录了每棵树上苹果的个数。每轮蔬果操作时,小明都记录了从每棵果树上去掉的苹果个数。在最后一轮蔬果操作结束后,请帮助小明统计相关的信息。
输入
第1行包含两个正整数N和M,分别表示苹果树的棵数和蔬果操作的轮数。
第1+i行(1≤i≤N),每行包含M+1个整数ai0,ai1,...aiM。其中ai0为正整数,表示第一轮蔬果操作开始前第i棵树上苹果的个数。aij(1≤j≤M)为0或负整数,表示第j轮蔬果操作时从第i棵树上去掉的苹果个数。如果为零,表示没有去掉苹果;如果为负,其绝对值为去掉的苹果个数。
每行中相邻两个数之间用一个空格分隔。
输出
输出只有一行,包含三个整数T、k和P。其中
·T为最后U一轮蔬果操作后所有苹果树上剩下的苹果总数(假设苹果不会因为其他原因减少);
·k为蔬果个数(也就是蔬果操作去掉的苹果个数)最多的苹果树编号(如有并列,输出满足条件的最小编号);
·P为该苹果树的蔬果个数。
相邻两个数之间用一个空格分隔。输入数据保证是正确的,也就是说,每棵树在全部蔬果操作结束后剩下的苹果个数是非负的
样例输入 Copy
3 3 73 -8 -6 -4 76 -5 -10 -8 80 -6 -15 0
样例输出 Copy
167 2 23
提示
第1棵苹果树的蔬果个数为8+6+4=18,第2棵树为5+10+8=23,第3棵树为6+15+0=21,因此最后一轮蔬果操作后全部苹果树上的苹果个数总和为(73-18)+(76-23)+(80-21)=167,蔬果个数最多的是第2棵树,其蔬果个数为23。
对于100%的数据有
1≤N,M≤100,|aij|≤103,1≤i≤N,0≤j≤M
#pragma GCC optimize(2)
#include <bits/stdc++.h>
using namespace std;
int a[101][101],c[101];
int main()
{
int n,m;
cin>>n>>m;
int sum=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m+1;j++)
{
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m+1;j++)
{
sum+=a[i][j];
}
}
for(int i=1;i<=n;i++)
{
for(int j=2;j<=m+1;j++)
{
c[i]+=a[i][j];
}
}
int maxn=2;
int t;
for(int i=1;i<=n;i++)
{
if(c[i]<maxn)
{
t=i;
maxn=c[i];
}
}
cout<<sum<<" "<<t<<" "<<abs(maxn);
return 0;
}