1190 afișări Onita Andrei (haloandrei) 28.10.2015 www.pbinfo.ro
Etichete: nicio etichetă

#include <iostream>

using namespace std;
int L101,C101,V101;
void citmat(int M[]101,int &n,int &m,int &k)
{ cin>>n>>m>>k; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>M[i][j];
}
int sumpelin(int M101,int m)
{ int s=0; for (int i=1;i<=m;i++) s=s+M[i]; return s;
}
void elemminmod(int M101,int m,int z,int &c)
{ int s=1000000,l; for (int i=1;i<=m;i++) if (M[i]<s) s=M[i],l=i; ++c; C©=l; V©=M[l]+z;
}
void elemmaxmod(int M101,int m,int &z,int &c)
{ int s=0,l; for (int i=1;i<=m;i++) if (M[i]>s) s=M[i],l=i; ++c; C©=l; if(M[l]<z) z=z-M[l],M[l]=0; else M[l]=M[l]-z,z=0; V©=M[l];
}
void planA(int M[]101,int n,int m)
{ int max=0,c=0; for (int i=1;i<=n;i++) if (sumpelin(M[i],m)>max) max=sumpelin(M[i],m); for (int i=1;i<=n;i++) { int x=sumpelin(M[i],m); if(max-x!=0) { elemminmod(M[i],m,max-x,c); L©=i; } } cout<<c<<”\n”; for (int i=1;i<=c;i++) cout<<L[i]<<” “<<C[i]<<” “<<V[i]<<”\n”;
}
void planB(int M[]101,int n,int m,int k)
{

int l=n-k,smax=0,c=0; for(int i=1;i<n;i++) { int l1=0; for(int j=i+1;j<=n;j++) if(sumpelin(M[i],m)==sumpelin(M[j],m)) l1++; if(l1>=l) l=l1,smax=sumpelin(M[i],m); } for(int i=1;i<=n;i++) if(sumpelin(M[i],m)<smax) { int z=smax-sumpelin(M[i],m); elemminmod(M[i],m,z,c); L©=i; } else if(sumpelin(M[i],m)>smax) { int z=sumpelin(M[i],m)-smax; while(z>0) { elemmaxmod(M[i],m,z,c); L©=i; } } cout<<c<<”\n”; for (int i=1;i<=c;i++) cout<<L[i]<<” “<<C[i]<<” “<<V[i]<<”\n”; } void preluck(int M[]101,int n,int m,int k) { if (k==(n-1)) planA(M, n,m); else if(k<(n-1)) planB(M,n,m,k); } int main() { int M101101,n,m,k; citmat(M,n,m,k); preluck(M,n,m,k); return 0; }

1190 afișări Onita Andrei (haloandrei) 28.10.2015 www.pbinfo.ro