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

Два указателя. Сложно - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ как выйти из циклов http://www.cyberforum.ru/cpp-beginners/thread859628.html
#include "stdafx.h" #include <stdio.h> #include <conio.h> #include <math.h> #include <Windows.h> #include <iostream> void main(void) { SetConsoleCP(1251);
C++ Почему так? Я вот уже довольно много времени читаю книги и разные коды по программированию, но все так и не понял. Почему хорошие программисты используют запись std:: а не просто в начале написать using namespace std; ?? В чем принципиальное различие между этими двумя записями и какую лучше применять? http://www.cyberforum.ru/cpp-beginners/thread859622.html
Необходимо написать калькулятор(деление), чтобы при выводе показывало 30 знаков после запятой C++
Необходимо написать калькулятор(деление), чтобы при выводе показывало 30 знаков после запятой. Типо 1/3 = 0,333333333333333333333333333334 P.S. Еще учитель просить использовать массив. Зачем? И как?
C++ поиск подстроки в строке
Всем доброго времени суток! Дано: две строки типа string, к примеру str1 = "HeLLo" и str2 = "hell" Вопрос: как найти из str1 подстроку str2 без учёта регистра? заранее спасибо
C++ Поиск и замена слов в файле txt http://www.cyberforum.ru/cpp-beginners/thread859590.html
Как заменить и найти слова в файле txt на С++. То есть есть файл вот такой структуры AAA БББ BBB 111 222 ыыы
C++ Рекурсивная функция Походу что-то с массивами не то, когда ввожу слишком большое число (15+), то выбивает ошибку с кучами\стеками, которую я не понимаю. using namespace std; void rekursija(long long factorials, int ArSize); int main() { cout << "Pls enter the number: " << endl; int ArSize; cin >> ArSize; long long * factorials = new long long; подробнее

Показать сообщение отдельно
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
09.05.2013, 19:11  [ТС]     Два указателя. Сложно
nonedark2008, вот переписал под свой лад
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
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <string>
 
using namespace std; 
 
int main(){
    freopen("input.txt", "rt", stdin);
    freopen("output.txt", "wt", stdout);
    int n, x, y, a, b, c, s;
    cin >> n >> x >> y >> a >> b >> c >> s;
    long long curb = s, cura, sum = 0;
    vector < pair<long long, int> > pref(n + 1);
    pref[0] = make_pair(0, 0); 
    for (int i = 1; i <= n; i++){
        curb = (a * curb + b) % c;
        cura = x * curb + y;
        sum += cura;
        pref[i] = make_pair(sum, i + 1); 
    }
    sort(pref.begin(), pref.end()); // пары сравниваются сначала по 1-ому, затем по второму эл-у
    vector <int> maxid(n + 1, pref[n].second);
    for (int i = n - 1; i >= 0; i--) {
        maxid[i] = max(maxid[i + 1], pref[i].second);
    }
    int max = 0;      
    for (int i = 1; i <= n; i++) {
        if (maxid[i] - pref[i].second > maxid[max] - pref[max].second) {
            max = i;
        }
    }
    cout << pref[max].second << " " << maxid[max] - pref[max].second;
    return 0;
}
Добавлено через 1 минуту
nonedark2008, щас затещу

Добавлено через 2 минуты
nonedark2008, 2/90 видимо сдесь какой то архикосяк, сейчас попробую понять вашу идею, пока сам не допёр ещё

Добавлено через 36 секунд
nonedark2008, кстати, TL очень много за NlogN не проходит решение

Добавлено через 1 минуту
nonedark2008, может из-за make_pair() так медленно ? по идее N Log N должно за 0.5 секунды проходить
 
Текущее время: 16:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru