- void sort(int x[], int n)
- {
- int temp;
- int i;
- int j;
- for (i = 1; i < n; ++i)
- {
- temp = x[i];
- for (j = i - 1; j >= 0; --j)
- {
- if (x[j] > temp)
- {
- x[j + 1] = x[j];
- }
- else
- {
- break;
- }
- }
- x[j + 1] = temp;
- }
- }
- int Fix_sum(int x[], int y[], int m, int n, int given)
- {
- int first;
- int last;
- int middle;
- int i;
- sort(x, m);
- for_each(x, x + 4, Print<int>() );
- cout << endl;
- for (i = 0; i < n; ++i)
- {
- first = 0;
- last = m - 1;
- while (first <= last)
- {
- middle = (first + last) / 2;
- if (x[middle] + y[i] == given)
- {
- return YES;
- }
- else if (x[middle] + y[i] > given)
- {
- last = middle - 1;
- }
- else
- {
- first = middle + 1;
- }
- }
- }
- return NO;
- }