1
#include<bits/stdc++.h>
using namespace std;
int n,m;
struct appletree{
int id;
int initnum;
int cutnum;
int remain;
bool operator <(const appletree& p) const{
if(cutnum!=p.cutnum){
return cutnum>p.cutnum;
}
return id<p.id;
}
};
appletree arr [1100];
int allcut=0,allinit;
int main(){
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>arr[i].initnum;
allinit+=arr[i].initnum;
arr[i].id=i+1;
int temp=0,all=0;
for(int j=0;j<m;j++){
cin>>temp;
all+=temp;
}
arr[i].cutnum=abs(all);
arr[i].remain=arr[i].initnum-arr[i].cutnum;
allcut+=abs(all);
}
sort(arr,arr+n);
cout<<allinit-allcut<<" "<<arr[0].id<<" "<<arr[0].cutnum<<endl;
}
2
#include<bits/stdc++.h>
using namespace std;
int n;
struct appletree{
int remainnum;
bool drop;
};
appletree arr[1010];
void init(){
for(int i=0;i<1010;i++){
arr[i].drop=false;
}
}
int main(){
cin>>n;
init();
for(int i=0;i<n;i++){
int mi;
cin>>mi;
cin>>arr[i].remainnum;
for(int j=1;j<mi;j++){
int temp;
cin>>temp;
if(temp>0){
if(temp!=arr[i].remainnum){
arr[i].drop=true;
arr[i].remainnum=temp;
}
}
else{
arr[i].remainnum+=temp;
}
}
}
int allremainapple=0,dropnum=0,tri=0;
for(int i=0;i<n;i++){
allremainapple+=arr[i].remainnum;
if(arr[i].drop){
dropnum++;
}
if(arr[i].drop&&arr[(i+1)%n].drop&&arr[(i+n-1)%n].drop){
tri++;
}
}
cout<<allremainapple<<" "<<dropnum<<" "<<tri<<endl;
}