Форум программистов, компьютерный форум CyberForum.ru

Наибольшая возрастающая подпоследовательность за O(NlogN) - C++

Восстановить пароль Регистрация
 
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
30.05.2014, 10:52     Наибольшая возрастающая подпоследовательность за O(NlogN) #1
Здравствуйте! Вот тут написал код НВП за О(NlogN).Но на тестирующей системе он выдает на тесты некоторые неправильные ответы.Тестов я получить не могу, а все мои тесты он проходит.

Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <utility>
#include <stack>
 
using namespace std;
typedef long long ll;
 
const ll maxn = 10009;
vector<ll> a(maxn, 0), t(maxn, maxn), p(maxn, 0), pr(maxn, 0);
ll n;
stack<ll> q;
 
 
void test()
{
    cin >> n;
    for (ll i = 1; i <= n; ++i)
        cin >> a[i];
    t[0] = -maxn;
    for (ll i = 1; i <= n; ++i)
    {
        ll j = upper_bound(t.begin(), t.begin() + n + 1, a[i]) - t.begin();
        if (a[i]<t[j] && a[i] > t[j - 1])
        {
            t[j] = a[i];
            p[j] = i;
            pr[i] = p[j - 1];
        }
    }
    ll ind = lower_bound(t.begin(), t.begin() + n + 1, maxn) - t.begin()-1;
    cout<<ind<<endl;
    ind = p[ind];
    while (ind)
    {
        q.push(ind);
        ind = pr[ind];
    }
    while (!q.empty())
    {
        cout << a[q.top()] << ' '; q.pop();
    }
}
 
int main()
{
    //ios_base::sync_with_stdio(0);
    test();
    return 0;
}
В чём ошибка тут быть может?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.05.2014, 10:52     Наибольшая возрастающая подпоследовательность за O(NlogN)
Посмотрите здесь:

C++ массив и возрастающая последовательность
C++ наибольшая общая подпоследовательность
возрастающая последовательность C++
Возрастающая последовательность C++
Возрастающая последовательность C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
grikukan
61 / 61 / 21
Регистрация: 23.09.2012
Сообщений: 212
30.05.2014, 11:05     Наибольшая возрастающая подпоследовательность за O(NlogN) #2
А где можно сдать для проверки?
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
30.05.2014, 11:10  [ТС]     Наибольшая возрастающая подпоследовательность за O(NlogN) #3
grikukan, informatics.mccme.ru
grikukan
61 / 61 / 21
Регистрация: 23.09.2012
Сообщений: 212
30.05.2014, 11:14     Наибольшая возрастающая подпоследовательность за O(NlogN) #4
Там в условии ошибка.
Поставьте maxn=100007 и будет Вам счастье
ZaMaZaN4iK
Мой лучший друг-отладчик!
 Аватар для ZaMaZaN4iK
163 / 163 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
30.05.2014, 14:38  [ТС]     Наибольшая возрастающая подпоследовательность за O(NlogN) #5
grikukan, не заходит.Пишет - неправильный формат вывода

Добавлено через 19 минут
Всё, проблема решена
Yandex
Объявления
30.05.2014, 14:38     Наибольшая возрастающая подпоследовательность за O(NlogN)
Ответ Создать тему
Опции темы

Текущее время: 13:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru