Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int APa[10], APb[10];
- bool iiFrate(unsigned int a, unsigned int b)
- {
- while(a)
- {
- int c = a % 10;
- APa[c]++;
- a = a / 10;
- }
- while(b)
- {
- int c = b % 10;
- APb[c]++;
- b = b / 10;
- }
- int contor = 0;
- for(int i = 0; i <= 9; i++)
- if(APa[i] != 0 && APb[i] != 0)
- contor++;
- for(int i = 0; i <= 9; i++)
- APa[i] = APb[i] = 0;
- if(contor >= 2)
- return true;
- else
- return false;
- }
- void subpctc(int x[], int n, int &start, int &k)
- {
- int numaratoare = 0;
- int vv[10005], vn = 0;
- for(int i = 0; i < n - 1; i++)
- {
- for(int j = 0; j < n; j++)
- {
- if(j != i)
- {
- if(!iiFrate(x[i], x[j]))
- numaratoare++;
- }
- }
- if(numaratoare == n - 1)
- vv[vn++] = i;
- numaratoare = 0;
- }
- int lung = 0, lungMax = 0, lungStart = -1;
- // 1 2 7 8 9
- for(int i = 0; i < vn - 1; i++)
- {
- //cout << "[DEBUG]: Verific pe " << vv[i] << " cu " << vv[i + 1] << "\n";
- if(vv[i] + 1 != vv[i+1])
- {
- lung = 0;
- lungStart = -1;
- //cout << "[DEBUG]: Resetam\n";
- }
- else
- {
- lung++;
- if(lungStart == -1) {
- lungStart = vv[i];
- }
- if(lung > lungMax) {
- lungMax = lung;
- }
- //cout << "[DEBUG]: Crestem: " << lung << " " << lungStart << "\n";
- }
- }
- start = lungStart + 1;
- k = lungMax + 1;
- }
- int main()
- {
- int x[10005] = {12345, 9, 100, 567, 5678, 345, 123, 8989, 222, 11, 78};
- int n = 11;
- int start, k;
- subpctc(x, n, start, k);
- cout << start << " " << k << "\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement