Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Бинарный поиск


Автор: Lacoste1024 15.1.2012, 20:28
Изучаю теорию по бинарному поиску. В качестве практики предложено несколько задач, одну из которых я не могу решить http://informatics.mccme.ru/moodle/mod/statements/view.php?id=192#1
Мой код:
Код

#include <iostream>
using namespace std;
const int MAX_N = 10001;

bool BinSearch(long a[], long k, long N)
{
    long from = 0, to = N-1, m;
    
    while (from < to) {
        m = (from+to) / 2;
        if (a[m] < k) from = m+1;
        else to = m;
    }
    if (a[to] == k) return true;
    else return false;
}

int main()
{
    long N, K, a[MAX_N], b[MAX_N];

    cin >> N >> K;
    for (long i = 0; i < N; i++) cin >> a[i];
    for (long i = 0; i < K; i++) cin >> b[i];

    for (long i = 0; i < K; i++) {
        if (BinSearch(a, b[i], N)) cout << "YES";
        else cout << "NO";
        cout << endl;
    }
    
    return 0;
}

Не могу понять в чём проблема.
Программа проходит 6 тестов, остальные нет. Содержание тестов я не знаю.

Автор: feodorv 15.1.2012, 22:10
Сходу:
Цитата(Lacoste1024 @  15.1.2012,  20:28 Найти цитируемый пост)
const int MAX_N = 10001;

Цитата
(0<N,K<100001)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)