yulyazhdan
?>

Задача на программирование. Язык Pascal. Дано целое число n. Разделите числа 1, 2, ..., n на три множества с одинаковой суммой или выясните, что это невозможно. Формат входных данных: В первой строке записано целое число n (1 >, а в следубщих трёх строках - сами множества: каждое число от 1 до n должно оказаться ровно в одной из этих трёх строк. Разделяйте числа в каждой строке пробелом. Поядок чисел в строке может быть любым. Если возможных ответов несколько, выведите любой из них. Если же такое разделение невозможно, в первой строке выведите >. Примеры: Стандартный вывод Стандартный ввод 6 YES 1 6 2 5 3 4

Информатика

Ответы

Albina

Насколько я понял n должна быть меньше или равна 100, верно? Тогда вот, он, может и не самый эффективный, но довольно понятный и работающий.

#include <iostream>

using namespace std;

int main(){

int n,maks,schetchik; /* n - это количество элементов массива, maks - думаю, знаешь, schetchik - высчитывает количество повторений максимального числа в массиве */

cin >>n;

if(n<=100){

int a[n]; /*обьявляем количество эелементов массива и проверяем, чтобы его количество было меньше или равно 100*/

for(int i=0;i<n;i++){ /*цикл for обьявляет переменную i, далее делая её текущим индексом элемента массива */

cin >> a[i];

if (a[i]>-30000 && a[i]<30000){ /* проверка условия, данного задачей
*/

if(i==0){maks=a[i]; schetchik =1;}; /* особая разработка автора, максимальным элементом массива становиться самый первый элемент (ну по крайней мере, я ни у кого не видел) */

if (i!=0 && maks == a[i]) {schetchik +=1;}; /* и ещё одна моя собственная разработка, проверка, не является ли элемент массива первым, а так же если он равен максимальному, то счетчик увел. на 1 */

if (maks<a[i]) {maks = a[i]; schetchik = 1; }; /* а тут мы проверяем на то, не являеться ли текущий массив большим чем максимальный, если да, то счет сбрасывается и макс. равняется текущему числу */

}

}

cout << schetchik; } //ну и вывод числа, всё довольно просто

}

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Задача на программирование. Язык Pascal. Дано целое число n. Разделите числа 1, 2, ..., n на три множества с одинаковой суммой или выясните, что это невозможно. Формат входных данных: В первой строке записано целое число n (1 >, а в следубщих трёх строках - сами множества: каждое число от 1 до n должно оказаться ровно в одной из этих трёх строк. Разделяйте числа в каждой строке пробелом. Поядок чисел в строке может быть любым. Если возможных ответов несколько, выведите любой из них. Если же такое разделение невозможно, в первой строке выведите >. Примеры: Стандартный вывод Стандартный ввод 6 YES 1 6 2 5 3 4
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

tagirova1
luxoutlet
chuev4444
dp199088206
Динков
allaraygor
Коваленко
gameover98
Galina3241
Гаевая1290
Solovetzmila
olyaartemenko
Tipan77
kirillreznikov
books