М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
sonykit2006
sonykit2006
02.12.2021 08:54 •  Информатика

Есть массив a состоящий из n целых чисел. Есть ли в массиве два различных индекса i и j такие, что ai + aj равна сумме всех остальных чисел массива?
Формат входных данных
В первой строке находится одно целое число n(3 6 n 6 105

) — размер массива.

Во второй строке находятся n целых чисел a1, a2, ..., an(1 6 ai 6 109

) — числа массива.

Формат выходных данных

Если есть два элемента массива, что их сумма равна сумме всех остальных элементов, то выве-
дите «YES». Иначе, выведите «NO».

👇
Ответ:
12345678298
12345678298
02.12.2021

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

void solve(){

   int n, sum = 0;

   bool ok = false;

   cin >> n;

   vector<int> a(n);

   for(auto &i: a) { cin >> i; sum += i;}

   sort(a.begin(), a.end());

   for(int i = 0; i < n; i++){

       int l = i + 1, r = n - 1;

       while(l <= r && !ok){

           int m = (l + r) / 2;

           if(a[m] < sum - a[i])

               l = m + 1;

           else if(a[m] > sum - a[i])

               r = m - 1;

           else

               ok = true;

       }

   }

   cout << (ok ? "YES" : "NO");

}

int main(){

   solve();

}

4,7(44 оценок)
Открыть все ответы
Ответ:
KaiBennet
KaiBennet
02.12.2021

ответ:

на форму поставил компонент memo

в edit1 и edit2 вводим значения строк и столбцов

для цикла for i: = for j: =

на кнопке следующий код

объяснение:

procedure tform1.button1click(sender: tobject);

  var i,j: integer; s: string;

begin

  a: = strtoint(edit1.text);

  b: = strtoint(edit2.text);

 

    for i: = 1 to a do begin

          s: = '';

    for j: = 1 to b do

      s: = s+'   '+inttostr(i*j);

      memo1.lines[i-1]: = s;

    end;

end;

4,8(20 оценок)
Ответ:
Ani32536
Ani32536
02.12.2021

ответ: окей

объяснение:

для квадрата:

procedure tform1.button1click(sender: tobject);

var

a,b,c,d,p,s: real;

begin

a: =2; b: =2; c: =2; d: =2;

if ((a=b)and(c=d)and(a=d))then

begin

p: =(a+b+c+d)/2;

s: =sqrt((p-a)*(p-b)*(p-c)*(p-d));

showmessage('s='+floattostr(s));

end else showmessage('это не квадрат');

end;

для треугольника:

procedure tform1.button1click(sender: tobject);

var

a,b,c,p,s: real;

begin

a: =2; b: =2; c: =3;

if (abs(a-b)

begin

p: =(a+b+c)/2;

s: =sqrt(p*(p-a)*(p-b)*(p-c));

edit1.text: =floattostr(s);

end else showmessage('не треугольник');

end;

4,5(62 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ