Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int a[101][101], n, m, k, p, L[101], c[101], x[101], i, j;
- int main()
- {
- cin>>n>>m>>k;
- for(i=1; i<=n; ++i)
- for(j=1; j<=m; ++j)
- cin>>a[i][j];
- for(i=1; i<=n; i++)
- {
- a[i][0]=0;
- for(j=1; j<=m; ++j)
- a[i][0]+=a[i][j];
- }
- p=0;
- if(k==n-1)
- {
- //este posibil ca toate liniile sa aibe sume diferite
- //determinam suma maxima SMAX
- //toate celelalte linii se vor modifica astfel incat sa se obtina suma SMAX
- //pe fiecare linie va creste cel mai mic element
- int SMAX=0;
- for(i=1; i<=n; ++i)
- if(a[i][0]>SMAX)
- SMAX=a[i][0];
- for(i=1; i<=n; ++i)
- if(a[i][0]!=SMAX)
- {
- int jmin=1;
- for(j=2; j<=m; ++j)
- if(a[i][j]<a[i][jmin])
- jmin=j;
- ++p; L[p]=i; c[p]=jmin; x[p]=a[i][jmin]+(SMAX-a[i][0]);
- }
- }
- else
- {
- //trebuie sa existe cel putin n-k linii cu aceeasu syma a elementelor
- //determinam suma care apare de cel putin n-k ori, fie aceasta s
- //pentru celelalte linii vom modifica cate un element
- //daca suma este mai mica decat s, marim cel mai mic element, daca suma este mai mare decat s micsoram cel mai mare element.Daca nu ajunge, continuam cu micsorarea
- int s=-1;
- for(i=1; i<=n && s==-1; i++)
- {
- int cnt=1;
- for(j=1; j<=n; j++)
- if(a[i][0]==a[j][0])
- cnt++;
- if(cnt>=n-k)
- s=a[i][0];
- }
- for(i=1; i<=n; ++i)
- if(a[i][0]<s)
- {
- //vom mari un element
- int jmin=1;
- for(j=2; j<=m; ++j)
- if(a[i][j]<a[i][jmin])
- jmin=j;
- int plus=s-a[i][0];
- a[i][jmin]+=plus;
- ++p; L[p]=i; c[p]=jmin; x[p]=a[i][jmin];
- }
- else
- while(a[i][0]>s)
- {
- //vom micsora un element
- int jmax=1;
- for(j=2; j<=m; ++j)
- if(a[i][j]>a[i][jmax])
- jmax=j;
- int dif;
- if(a[i][0]-s<=a[i][jmax])
- dif=a[i][0]-s;
- else
- dif=a[i][jmax];
- a[i][jmax]-=dif;
- a[i][0]-=dif;
- ++p; L[p]=i; c[p]=jmax; x[p]=a[i][jmax];
- }
- }
- cout<<p<<endl;
- for(i=1; i<=p; i++)
- cout<<L[i]<<" "<<c[i]<<" "<<x[i]<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement