Advertisement
mihaimarcel21

forta1_eu

Feb 9th, 2021
793
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.28 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. ifstream fin("forta.in");
  5. ofstream fout("forta.out");
  6. struct Forta
  7. {
  8.     unsigned long long val;
  9.     int fr, poz;
  10. };
  11. Forta v[1001];
  12. int n, sm;
  13. int Contor(unsigned long long nr1, unsigned long long nr2)
  14. {
  15.     int fr1[10], fr2[10], cnt=0;
  16.     for(int i=0; i<10; ++i)
  17.         fr1[i]=0, fr2[i]=0;
  18.     do
  19.     {
  20.         fr1[nr1%10]++;
  21.         nr1/=10;
  22.  
  23.     }while(nr1);
  24.     do
  25.     {
  26.         fr2[nr2%10]++;
  27.         nr2/=10;
  28.  
  29.     }while(nr2);
  30.     for(int i=0; i<10; ++i)
  31.         if(fr1[i] && fr2[i])
  32.             cnt+=min(fr1[i], fr2[i]);
  33.     return cnt;
  34. }
  35.  
  36. int main()
  37. {
  38.     unsigned long long x;
  39.     fin>>n;
  40.     for(int i=1; i<=n; ++i)
  41.     {
  42.         fin>>x;
  43.         v[i].val=x;
  44.         v[i].poz=i;
  45.     }
  46.     for(int i=1; i<n; ++i)
  47.     {
  48.         for(int j=i+1; j<=n; ++j)
  49.         {
  50.             sm=Contor(v[i].val,v[j].val);
  51.             v[i].fr+=sm;
  52.             v[j].fr+=sm;
  53.         }
  54.  
  55.     }
  56.     for(int i=1; i<n; i++)
  57.         for(int j=i+1; j<=n; ++j)
  58.             if(v[i].fr > v[j].fr)
  59.                 swap(v[i],v[j]);
  60.             else if(v[i].fr==v[j].fr)
  61.                 if(v[i].poz < v[j]. poz)
  62.                     swap(v[i],v[j]);
  63.     for(int i=1; i<=n; i++)
  64.         fout<<v[i].val<<" ";
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement