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

Простенькая задачка из Timus Online Judge(1005. Куча камней) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Обучиться и самому написать толковый клиент\программу http://www.cyberforum.ru/cpp-beginners/thread355658.html
Здравствуйте нужно как можно быстрее обучиться языкам для написания программы. Она должна работать только по интернету. Что мне для этого нужно знать ? SQL, C++ ?.. Можно ли объединять в одной...
C++ Подсчитать количество слов и определить и вывести на экран максимальное и минимальное слова и их длину. Подсчитать количество слов и определить и вывести на экран максимальное и минимальное слова и их длину. Помогите написать...срочно очень нужно... есть фотография этой проги нужно ее... http://www.cyberforum.ru/cpp-beginners/thread355655.html
C++ Подсчитать средний код всех выведенных на экран символов
Написать программу, которая: - выводит на экран перечень городов в виде столбца, первые буквы строк которого составляют фамилию студента (буквы ‘ы’, ‘ь’, и ‘ъ’ фамилии исключаются); -...
Игра в города C++
Нужно реализовать в С++ Игра в города Условие задачи: Всем известны правила игры "в города": первый игрок называет произвольный город, следующий - город, название которого начинается на ту же...
C++ не выполнимое задание http://www.cyberforum.ru/cpp-beginners/thread355610.html
Задайте две таблицы. Одна содержит наименование услуг, а другая – расценки за эти услуги. Удалите из обеих таблиц все строки, которые предшествуют услуге, цена которой Р рублей. Даже не знаю как...
C++ Циклы и двумерные массивы 1. Цикл For... Среди всех n-значных чисел (n = 1,2,3,4) указать те, сумма цифр которых равна данному числу k. 2. двумерные массивы Дана целочисленная квадратная матрица. Найти в каждой строке... подробнее

Показать сообщение отдельно
baurgun
Сообщений: n/a
22.06.2012, 19:52
Вот мой код решения этой задачи
На Тимусе выдает неправильный ответ на 5 тесте. Сколько не прогонял считает все правильно, может тест подскажите какой?)
Алгоритм такой: функция max - ищет максимальный и зануляет его. в одну кучу кладем максимальный элемент, и во вторую также (тоесть следущий по максимальности). Если вес второй кучи больше первой, то добавляем максимальный в первую, иначе во вторую. Если же вес куч равен, то кладем в первую.


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
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <stdio.h>
#include <new>
 
unsigned int n;
 
int max (int p[])
{int j,h=0,m=0;
    for(j=0;j<n;j++)
    {if(p[j]>=m) {m=p[j];h=j;}}
p[h]=0;
return m;}
 
 
void c(int **mass, unsigned int len)
{
    *mass = new int[len];
}
 
int main()
{unsigned int k1,k2,i,y;int l,*p,q;
        
scanf("%u",&n);
if( n<1 || n>20) return 0;
c(&p,n);
    
for( i=0;i<n;i++)
{scanf("%u",&p[i]); 
if (p[i]<1 || p[i]>100000) return 0;}
 
k2=max(p);
k1=max(p);
 
//printf("%d %d",k2,k1);}
 
for(y=1;y<=n-1;y++) 
{if(k2>=k1)
k1=k1+max(p);
else k2=k2+max(p);
 
}
q=k2-k1;
if(q<0) l=-q;
else l=q;
 
printf("%d",l);
 
delete[] p;return 0;
 
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru