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

Найти числа что бы (xi – xj)*(xj – xk) было макс. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В программе про игральные кости нужно дать вес каждой грани... http://www.cyberforum.ru/cpp-beginners/thread432604.html
Помогите пожалуйста!!! В программе про игральные кости нужно дать вес каждой грани, Вес каждой грани от 0.1 до 1. Вес означает с какой вероятностью выпадет грань. #include <iostream> #include <iomanip> #include <stdlib.h> #include <time.h> using namespace std; void printPoints(int pt, const int lenght, const int val) {
C++ Перегрузка оператора индексации и присваивания (C++) Доброго времени суток уважаемые форумчане. Возникла проблема Допустим у меня есть класс, в котором находится некий массив и нужно сделать так, чтобы работать с классом можно было как с массивом Перегрузил оператор индексации, он работает правильно, необходимо сделать так, чтобы при присваивании выполнялось ещё определённое действие. Пробовал перегружать оператор присваивания. myClass... http://www.cyberforum.ru/cpp-beginners/thread432599.html
C++ Работа с файлами базы данных
Здравствуйте. Нужно написать программу для поддержки последовательного метода доступа к файлу базы данных на тему "Книжный магазин", которая реализует следующеие функции: 1.Создание файла базы данных. 2.Печать файла базы данных. 3.Чтение записи по указанному ключу. 4.Поиск записи по указанному ключу. 5.Вставка записи. 6.Удаление записи. Файл базы данных представлен простым файлом *.txt....
C++ Написать программу для вычисления функции F
помогите решить данные 2 задачи 1.Использовать оператор while Написать программу для вычисления функции F, при этом, если не указано количество шагов (бесконечность), то вычисления проводить с точностью 10-4 (точность считается достигнутой, если очередное слагаемое или сомножитель по модулю меньше точность). (картинка) 2. Дана строка, в которой содержится осмысленное текстовое сообщение....
C++ Вопрос о перегрузке ++/-- http://www.cyberforum.ru/cpp-beginners/thread432543.html
Рассмотрим простой пример постфиксной и префиксной операции инкремента: int main() { int i=0; cout<< i++; cout<< ++i; _getch(); return 0; }
C++ Можно ли это написать как то проще #include <cstdlib> #include <iostream> #include <stdlib.h> #include <math.h> using namespace std; /* В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество отриц. элементов массива; подробнее

Показать сообщение отдельно
qpaHTa3ep4ik
1 / 1 / 1
Регистрация: 27.11.2011
Сообщений: 9
21.01.2012, 22:10     Найти числа что бы (xi – xj)*(xj – xk) было макс.
На прямой задано n точок. Координаты этих точок x1, x2, ..., xn. Нужно найти такие 3 точки i, j и k (xi > xj > xk), что бы значение (xi – xj)*(xj – xk) было максимальным.

Входные данные
Ввести с клавиатуры число n (1< n < pow(10,5). Дальше идут n целых чисел, Которые по модулю не больше pow(10,6).


Вот вариант решения, но задача прошла только 9 из 10 тестов, помогите найти недочёт, по моему дело в типах



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
using namespace std;
#include<iostream>
#include<math.h>
int main()
{
      int a[100000],i,n;
      long long v,mx,mn,sr,minr,j;
      cin>>n;
      for(i=0;i<n;i++)
      {
          cin>>a[i];
      }
      mx=a[0];
      mn=a[0];
      for(i=0;i<n;i++)
      {
         if(a[i]>mx){mx=a[i];}
         if(a[i]<mn){mn=a[i];}
      }
       j=(mx+mn)/2;
       minr=mx;
       for(i=0;i<n;i++)
       {
         if(a[i]!=mx&&a[i]!=mn&&fabs(a[i]-j)<minr){sr=a[i];minr=fabs(a[i]-j);}  
       }
       v =(long long)(mx-sr)*(sr-mn);
   //  cout<<v<<" "<<mx<<" "<<mn<<" "<<sr;
    
 cout<<v;
 
       return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru