Advertisement
nicuvlad76

Untitled

Oct 25th, 2020
1,707
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #define N 1005
  3. using namespace std;
  4. ifstream fin("bomboane.in");
  5. ofstream fout("bomboane.out");
  6. int v[N],n;
  7.  
  8. void Minim(int &Min, int &poz)
  9. {
  10.     int p=0, m=N;
  11.     for(int i=1;i<=n;i++)
  12.         if(v[i]<m)
  13.     {
  14.         m=v[i];p=i;
  15.     }
  16.     Min=m;
  17.     poz=p;
  18. }
  19. void Maxim(int &Max, int &poz)
  20. {
  21.     int p=0, m=-N;
  22.     for(int i=1;i<=n;i++)
  23.         if(v[i]>m)
  24.     {
  25.         m=v[i];p=i;
  26.     }
  27.     Max=m;
  28.     poz=p;
  29. }
  30. int a[N], b[N], c[N],k,i;
  31. int main()
  32. {
  33.     fin>>n;
  34.     int B=0;
  35.     for(i=1;i<=n;i++)
  36.     {
  37.         fin>>v[i];
  38.         B+=v[i];
  39.     }
  40.     if(B%n!=0){fout<<-1; return 0;}
  41.  
  42.     B/=n;
  43.     int Max, Min, pMax, pMin;
  44.     while(1)
  45.     {
  46.         Minim(Min,pMin);
  47.         Maxim(Max,pMax);
  48.         if(Max==Min) break;
  49.         v[pMin]=B;
  50.         v[pMax]=Max-B+Min;
  51.         a[++k]=pMax;b[k]=pMin; c[k]=B-Min;
  52.     }
  53.  
  54.     fout<<k<<'\n';
  55.     for(int i=1;i<=k;i++)
  56.         fout<<a[i]<<' '<<b[i]<<' '<<c[i]<<'\n';
  57.     return 0;
  58. }
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement