要求
时间限制: 2.0s
内存限制: 512.0MB
题目链接:http://118.190.20.162/view.page?gpid=T94
题目描述:
特别要求:两棵树去掉的水果数一致时k应该取编号较小的树
代码
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int a,b;//a代表树某棵树剩下的水果数,b代表某棵树去掉的水果树
int a1=0,b1=0,b2=0;// a1表示所有数剩下的水果之和,b1代表所有树去掉的水果数之和,b2代表某棵树去掉的水果数之和
int c[n];//c是存放各个b2结果的数组
for(int i=0;i<n;i++)
{
cin>>a;//每棵树修剪前的水果数
a1+=a; //所有树剩下的水果树总和
for(int j=0;j<m;j++)
{
cin>>b;//每棵树每一轮去掉的水果数
b1+=b;//所有树去掉的水果总和
b2+=b;//第i课树去掉的水果总和
}
c[i]=b2;
b2=0;//清0
}
//比较
int k,p=0;
for(int i=n-1;i>=0;i--) //倒着比较方便满足:两棵树去掉的水果一致时应该取编号较小的树
{
int temp=fabs(c[i]);
if(temp>=p)
{
p=temp;
k=i+1;
}
}
int T;
T=a1+b1;//apple_all是负数,相加即可
cout<<T<<" "<<k<<" "<<p;
return 0;
}