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

Дано целое число N и набор из N целых чисел. Найти номера первого и последнего мин. элемента из данного набора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Быстродействие программы http://www.cyberforum.ru/cpp-beginners/thread1542542.html
Доброго времени суток! Была дана задача: программа получает на вход файл, содержащий три строки: 1. Количество чисел в последовательности (N) 2. Последовательность a 3. Последовательность b Из этих двух последовательностей получается N отрезков . Отрезок будет считаться лишним, если есть отрезок такой, что Ai > Aj и Bi < Bj. Выводит программа в первую строку файла количество таких...
C++ Сместить на плоскости три точки с определенной закономерностью Точки задаются координатами (x1, y1), (x2, y2) соответственно. При смене координат одной точки, координаты другой точки меняются по принципу: fi = atan((y12-y1)/(x12-x1)) x22= L cos(fi) + x12 y22=L sin (fi) + y12 расстояние между точками не меняется, смещение другой точки минимально. http://www.cyberforum.ru/cpp-beginners/thread1542535.html
C++ Объяснить код
Может кто-нибудь смог бы закомментировать данные участок кода или объяснить что за что отвечает( можно еще и ссылки на сторонние ресуры скинуть)..? Пока дальше циклов и простых функций не продвинулся, а разобраться с кодом очень надо! Заранее спасибо. ... конкретно данный участок позволяет найти повторяющиеся слова(2 и более раза) в строке и образует из них новую последовательность. ...
C++ Найти простые числа и занести их в новый массив
Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. Первая функция ищет простые числа и заносит их в новый массив, вторая – все числа кратные трем, третья – все четные числа. В программе создайте массив из 3-х указателей на эти функции. Добавьте меню, в котором пользователь может выбрать желаемую...
C++ Ошибка при определении переменной в switch http://www.cyberforum.ru/cpp-beginners/thread1542515.html
case 2: // почасовые работники - фиксированная плата за 40ч, после 40ч полуторная ставка int workingNorm = 40; int hours; rate = 1.5; // ставка за сверхурочные часы cout << "Enter the salary for hour: "; cin >> salary; cout << "Enter the number of hours: ";
C++ Странная инициализация, объясните код Встретил такой код: int x = (3, 2 , 5 , 4 ); std::cout<<x;//4 Вопросы: -как это называться; -зачем; -что происходит в этом случае; Спасибо! подробнее

Показать сообщение отдельно
_Ivana
2546 / 1555 / 135
Регистрация: 01.03.2013
Сообщений: 4,441
Записей в блоге: 2
01.10.2015, 23:31     Дано целое число N и набор из N целых чисел. Найти номера первого и последнего мин. элемента из данного набора
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
#include <iostream>
#include <functional>
using namespace std;
 
typedef std::pair<bool, int>  li_t;
typedef std::function<li_t()> fi_t;
 
int main() {
    fi_t nil  = []() -> li_t {return std::make_pair(false, 0);};
    auto null = [](li_t a) -> bool {return !a.first;};
    auto val  = [](li_t a) -> int  {return a.second;};
    
    auto cons = [](int a, const fi_t& l) -> fi_t {
        int p=0; return [=]() mutable -> li_t {
                    if (p) return l(); else {p=1; return std::make_pair(true, a);}};};
    
    auto listRand = [cons,nil](int i) -> fi_t {
        auto go = [cons,nil](int i, const auto& la) -> fi_t {
            return i ? cons(rand()%100-50, la(i-1, la)) : nil;};
        return go(i, go);};
 
    auto task = [null,val](const fi_t& l) -> std::pair<int, int> {
        auto go = [null,val](int i, int m, int il, int ir, const fi_t& l, const auto& la)
             -> std::pair<int, int> {
            li_t e=l(); return null(e) ? std::make_pair(il, ir) :
                        val(e)< m ? la(i+1, val(e), i, i,  l, la) :
                        val(e)==m ? la(i+1, m,     il, i,  l, la) :
                                    la(i+1, m,     il, ir, l, la);};
        return go(0, 10e9, 0, 0, l, go);};
 
    int n; cin>>n;
    std::pair<int, int> r = task(listRand(n));
    cout<<r.first<<'\t'<<r.second<<'\n';
    return 0;
}
 
Текущее время: 20:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru