hopingsteam

Untitled

Apr 4th, 2020
246
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include    <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int APa[10], APb[10];
  6. bool iiFrate(unsigned int a, unsigned int b)
  7. {
  8.     while(a)
  9.     {
  10.         int c = a % 10;
  11.         APa[c]++;
  12.         a = a / 10;
  13.     }
  14.     while(b)
  15.     {
  16.         int c = b % 10;
  17.         APb[c]++;
  18.         b = b / 10;
  19.     }
  20.     int contor = 0;
  21.     for(int i = 0; i <= 9; i++)
  22.         if(APa[i] != 0 && APb[i] != 0)
  23.             contor++;
  24.  
  25.     for(int i = 0; i <= 9; i++)
  26.         APa[i] = APb[i] = 0;
  27.  
  28.     if(contor >= 2)
  29.         return true;
  30.     else
  31.         return false;
  32. }
  33.  
  34. void subpctc(int x[], int n, int &start, int &k)
  35. {
  36.     int numaratoare = 0;
  37.     int vv[10005], vn = 0;
  38.     for(int i = 0; i < n - 1; i++)
  39.     {
  40.         for(int j = 0; j < n; j++)
  41.         {
  42.             if(j != i)
  43.             {
  44.                 if(!iiFrate(x[i], x[j]))
  45.                     numaratoare++;
  46.             }
  47.         }
  48.         if(numaratoare == n - 1)
  49.             vv[vn++] = i;
  50.         numaratoare = 0;
  51.     }
  52.     int lung = 0, lungMax = 0, lungStart = -1;
  53.     // 1 2 7 8 9
  54.     for(int i = 0; i < vn - 1; i++)
  55.     {
  56.         //cout << "[DEBUG]: Verific pe " << vv[i] << " cu " << vv[i + 1] << "\n";
  57.         if(vv[i] + 1 != vv[i+1])
  58.         {
  59.             lung = 0;
  60.             lungStart = -1;
  61.             //cout << "[DEBUG]: Resetam\n";
  62.         }
  63.         else
  64.         {
  65.             lung++;
  66.             if(lungStart == -1) {
  67.                 lungStart = vv[i];
  68.             }
  69.             if(lung > lungMax) {
  70.                 lungMax = lung;
  71.             }
  72.             //cout << "[DEBUG]: Crestem: " << lung << " " << lungStart << "\n";
  73.         }
  74.     }
  75.     start = lungStart + 1;
  76.     k = lungMax + 1;
  77. }
  78.  
  79. int main()
  80. {
  81.     int x[10005] = {12345, 9, 100, 567, 5678, 345, 123, 8989, 222, 11, 78};
  82.     int n = 11;
  83.  
  84.     int start, k;
  85.     subpctc(x, n, start, k);
  86.  
  87.     cout << start << " " << k << "\n";
  88.     return 0;
  89. }
RAW Paste Data