Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void poisk (int *arr, int znach, int razmer)
- {
- int t=-1;
- int result = 0;
- int right = razmer-1;
- int left = 0;
- while (right>=left)
- {
- int i = (right+left)/2;
- int middle = arr[i];
- if (middle == znach)
- {
- t=i;
- while (arr[t]==znach && t!=-1)
- t--;
- result = t+1;
- t+=1;
- while (arr[t]==znach && t!=razmer)
- t++;
- result = t-result;
- cout << result << endl;
- goto printl;
- }
- else if (znach < middle)
- right = i-1;
- else if (znach > middle)
- left = i+1;
- }
- printl:
- if (t==-1)
- cout << "Not found" << endl;
- }
- int main()
- {
- int n=0, m=0, *arr;
- cin >> n;
- arr = new int[n];
- for (int i=0; i<n; i++)
- {
- cin >> arr[i];
- }
- cin >> m;
- int zapros = 0;
- for (int j=0; j<m; j++)
- {
- cin >> zapros;
- if (zapros < arr[0] || zapros > arr[n-1])
- cout << "Not found" << endl;
- else
- poisk (arr, zapros, n);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement