Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
6 / 7 / 4
Регистрация: 17.09.2013
Сообщений: 337

Весы

26.12.2013, 12:19. Показов 1190. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить задачу.
Имя входного файла: sum.dat
Имя выходного файла: sum.sol
Ограничение времени: 1 с
Ограничение памяти: 64 M


DOC-file

После того, как Урфин Джюс овладел Изумрудным городом, у него появилось любимое занятие — взвешивание изумрудов. Для этого у него есть чашечные весы и набор из N гирь. На одну чашу весов Урфин кладет изумруд, а на другую — некоторые гири из набора так, чтобы чаши уравновесились.

К сожалению, набор гирь у Урфина таков, что ему удается взвесить далеко не все изумруды, которые у него есть. Один из таких изумрудов он решил подарить мудрому филину Гуамоко. Естественно, Урфин хочет отдать Гуамоко самый легкий из тех изумрудов, вес которых он не может определить с помощью своего набора гирь.

Определите, какого веса изумруд получит мудрый филин Гуамоко.
Формат входного файла sum.dat

Текстовый файл sum.dat состоит из двух строк. В первой строке записано натуральное число N — количество гирь, которые есть у Урфина Джюса (1 ≤ N ≤ 50).

В следующей строке через пробел записаны N натуральных чисел - веса гирь. Веса лежат в диапазоне от 1 до 1 000 000 000.

Вес любого изумруда не меньше 1.
Формат выходного файла sum.sol

Текстовый файл sum.sol должен содержать единственное число — минимальный вес, который нельзя уравновесить с помощью гирь из заданного набора.
Программа выглядит так.
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
#define maxn 100
 
int a[maxn];
 
int n;
int pr = 0;
 
void merge(int l, int r) {
    if (r == l)
        return;
    if (r - l == 1) { 
        if (a[r] < a[l])
            swap(a[r], a[l]);
        return;
    }
    int m = (r + l) / 2;
    merge(l, m);
    merge(m + 1, r);
    int buf[maxn];
    int xl = l;
    int xr = m + 1;
    int cur = 0;
    while (r - l + 1 != cur) {
        if (xl > m) {
            buf[cur++] = a[xr++];
            pr++;
            }
        else if (xr > r) {
            buf[cur++] = a[xl++];
            pr++;
            }
        else if (a[xl] > a[xr]) {
            buf[cur++] = a[xr++];
            pr++;
            }
        else {
             buf[cur++] = a[xl++];
             pr++;
             }
 
    }
    for (int i = 0; i < cur; i++)
        a[i + l] = buf[i];
}
 
int main() {
    
     int N, i, j, mn = 0, pr = 0, c = 0;
    FILE *fp, *np;
    fp = fopen("sum.dat", "r");
    np = fopen("sum.sol", "w");
    /*scanf("%d", &N);
    for(i = 0; i < N; i++) {
        scanf("%d", &a[i]);
    }*/
    fscanf(fp, "%d", &N);
    for(i = 0; i < N; i++) {
        fscanf(fp, "%d", &a[i]);
    }
    merge(0, N - 1);
while(mn == 0) {
    pr++;
    mn = pr;
    for(i = N - 1; i >= 0; i--) {
        if(mn >= a[i]) {
            mn = mn - a[i];
        }
    }
}
fprintf(np, "%d\n", pr);
/*printf("%d\n", pr);*/
fclose(fp);
fclose(np);
    /*cin >> n;
 
    for (int i = 0; i < n; i++)
        cin >> a[i];
 
    merge(0, n - 1);
 
    for (int i = 0; i < n; i++)
        cout << a[i] << " ";
        cout << pr << "\n";*/
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.12.2013, 12:19
Ответы с готовыми решениями:

Класс Balance для описания весов
Напишите класс Balance для описания весов с двумя чашами. На левую и правую чашу объекта будут добавляться грузы с различным весом, ваша...

Электронные весы
Неплохие задачи по С++! Подзабыл его( выручайте, буду очень благодарен 4. Ваша задача - грамотно запрограммировать электронные весы....

Нарисовать весы
помогите нарисовать! вообще не умею и не понимаю как это делать( рисунок не идеальный но приблизительно так его и надо нарисовать

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.12.2013, 12:19
Помогаю со студенческими работами здесь

Весы на iPhone с 3D Touch
Здравствуйте. Как реализовать весы на iPhone с 3D Touch на веб сайте?

Напольные весы на ATmega8
У меня курсовой проект по микропроцессорам на тему электронные напольные весы с индикатором с применением микроконтороллера. Я применяю...

Графика. Анимированные весы
При выполнении программы возникают дефекты по ходу движения фигур. Конкретно, чашечки весов стираются некорректно, не до конца. Намекните,...

Нарисовать весы с чашами
помогите зделать работу проболел половину пришёл на пары и ничего не понимаю... -_- Нужно сделать в C# WindowsForm. Заранее спасибо.

Весы CAS AD и распиновка
Добрый день коллеги! Прошу помочь, Первый раз этим занимаюсь, а очень надо! Есть распиновка для этих весов, но чего не могу понять.......


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru