C++ для приматов

Начальный курс программирования для студентов направления "Прикладная математика" Одесского национального университета имени И.И.Мечникова

Menu

Skip to content
  • Hello, World!
  • Homework Assignment
    • Творческие задачи
    • Линейные вычисления
    • Программы с ветвлением
    • Циклы
    • Потоковая обработка
    • Массивы
    • std::array
    • Сортировки
    • Стеки, Деки, Очереди
    • Задачи на графах
  • In-Class Assignment
    • Численное дифференцирование
    • Численное интегрирование
    • Github и koding.com
    • Визуализация графов
    • Словарный граф
    • Phonetic algorithms
    • Код Хаффмана
    • Код Прюфера
    • Слон из мухи
    • Динамическое программирование
    • Segment Tree
  • Links & Materials
  • M: Additional Tasks
    • SQL
    • CGI
    • GOOGLE Charts API
    • SVG
  • Word of the Week
    • Где кончается арифметика?
    • В следующее измерение!
    • Идём к ним?
    • Игры программистов
    • Шпрага и Гранди приручают нимберов
    • Квайны
    • Числа Фибоначчи
  • Final Exam
  • Course Dashboard
  • Photos
  • Algorithms and Data Structures
    • Коллекции/контейнеры в STL
    • Stacks, Queues and Expressions
    • ООП: Перегрузка операций, наследование и все в кучу
  • О нас

 

  • Регистрация
  • Войти
  • Лента записей
  • Лента комментариев
  • WordPress.org

Meet Your Teachers

dr.Mazurok

dr.Mazurok

Software developer AI Scientist Ass.prof Odessa National I.I.Mechnikov University

Проверенные Сервисы

Посмотреть полный профиль →;

Jane Platonova

Jane Platonova

Посмотреть полный профиль →;

Недавние решения

  • OCPC2021. Задача A. Колёса деда Панаса (код решения) 20/01/2024
  • OCPC2021. Задача F. Электрик наносит ответный удар (код решения) 20/01/2024
  • OCPC-2021. Задача B. Палиндромонойя (код решения) 20/01/2024
  • OCPC-2021. Задача D. Столовая (код решения) 20/01/2024
  • OCPC-2021. Задача G. Электрик возвращается (код решения) 22/12/2021

Tag Archives: account

e-olymp 84. Transfer

26/05/2018 by Костя Григорян

0

Task

Vasya has one package of mobile phone operator Ratsviyk and $S_0$ tugriks on its account. (Tugrik is the currency in Vasya’s country. $0.01$ of tugrik is a cent). Also he has $n$ packages of Eciujd which is the satellite of Ratsviyk. There are $S_i$ tugriks on the account of the $i$-th package of Eciujd. There was a new tariff plan on Ratsviyk and Vasya want to go into it. For this purpose it is necessary to have at least $S$ tugriks on the account. Vasya hasn’t any money, that is why he don’t want to buy new bill replenishment, to fill up the Ratsviyk account to the necessary sum. But the escape exists.
On Ratsviyk there is such possibility as to transfer money between each others. The transfer is the sending of some money from one account to another. It is possible to send only an integer amounts of tugriks, not smaller than $5$. The cost of the transfer is $10$ cents which is draw from the account from which money was sended. Transfer can be made only if after it on the account remains at least $5$ tugriks. Since Eciujd is the satellite of Ratsviyk, then subscribers of Eciujd also can participate in this transfers.
Giving $S_0, S, n, S_i (1 \leq i \leq n)$ find whether it is possible to go into new tariff plan without buying new bill replenishment and if so find the minimum number of transfers needed for this.

Input

In the first line of input there is an integer $n (0 \leq n \leq 1000), S_0$ and $S$. In the second line are written down through a blank numbers $S_1, S_2,$…$,S_n$. All numbers $S, S_i (0 \leq i \leq n)$ — real numbers from the interval $[0.01, 10000.00]$ with exactly with two digits after a decimal point.

Output

Output the minimum number of transfers needed to go into new tariff plan or $-1$ if it is impossible without buying a new bill replenishment.

Tests

Input Output
[latex]2\, 10.00\, 16.00[/latex] [latex]2[/latex]
[latex]10.10\, 6.10[/latex]
[latex]3\, 100.00\, 50.00[/latex] [latex]0[/latex]
[latex]2.00\, 19.05\ 30.20[/latex]
[latex]3\ 10.00\ 14.00[/latex] [latex]-1[/latex]
[latex]2.00\ 10.05\ 10.00[/latex]
[latex]2\ 142.10\ 143.00[/latex] [latex]2[/latex]
[latex]6.05\ 7.00[/latex]

Code

e-olymp 84 Transfer
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
#include <iostream>
#include <algorithm>
using namespace std;
 
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    double s0, s;
    double A[n], B[n];
    cin >> s0 >> s;
    if(s0>=s)
        cout << 0;
    else
    {
        for(int i=0; i<n; i++)
        {
            cin  >> A[i];
            B[i]=A[i];
        }
        sort(B, B+n);
        int ans=0;
        for(int i=n-1; i>=1; i--)
        {
            if(B[i]>=10.1)
            {
                if((int)(B[i]-5.1)+s0>=s){
                    ans++;
                    cout << ans;
                    return 0;
                }
                else
                {
                    ans++;
                    B[i-1]+=(int)(B[i]-5.1);
                }
            }
            else
            {
                break;
            }
        }
        if((B[0]>=10.1)&&((int)(B[0]-5.1)+s0>=s))
            cout << ans+1;
        else
        {
            sort(A, A+n);
            if(s0>=10.1)
            {
                A[n-1]+=(int)(s0-5.1);
                s0-=(int)(s0-5.1);
                                s0-=0.1;
                ans=1;
                for(int i=n-1; i>=1; i--)
                {
                    if(A[i]>=10.1)
                    {
                        if((int)(A[i]-5.1)+s0>=s){
                            ans++;
                            cout << ans;
                            return 0;
                        }
                        else
                        {  
                            ans++;
                            A[i-1]+=(int)(A[i]-5.1);
                        }
                    }
                    else
                    {
                        break;
                    }
                }
                if((A[0]>=10.1)&&((int)(A[0]-5.1)+s0>=s))
                    cout << ans+1;
                else
                    cout << -1;
            }
            else
                cout << -1;
        }  
    }
    return 0;
}

Solution

To begin with, if we have enough money in our account, then we do not need to do anything. Otherwise, we have three options: when we can collect the required amount without manipulating the main account, when we can collect the necessary amount by manipulating the main account and when we can not collect the required amount at all.
For the first option, we will transfer the largest possible amount to smaller ones from large side accounts and check whether we can switch to a new tariff by transferring the current account amount to the main account. In cases of a positive answer, the problem is solved.
If in the end you did not manage to get the right amount, go to the second option. We simply transfer the maximum possible amount from the main account to the largest collateral account. Then we do everything the same as in the first version. In cases of a positive answer, the problem is solved.
Otherwise, you can not get the right amount.

References

The task at E-Olymp
My solution at ideone

Related Images:

Posted in 5. Массивы. Tagged account, search of options, transfer.

Post navigation

  • 1. Линейные вычисления
  • 2. Программы с ветвлением
  • 3. Циклы
  • 4. Потоковая обработка
  • 5. Массивы
  • 6. Многомерные массивы
  • 7. Строки c-string
  • 8. Строки string
  • 9. Последовательные контейнеры
  • A. Сортировки и жадность
  • B. Стеки-деки-очереди
  • C. Ассоциативные контейнеры
  • D. Графы
  • E. Дерево отрезков
  • F. Динамическое программирование
  • Игры программистов
  • Спортивное программирование
  • Творческие задачи
  • Численный анализ
  • ⌂ Организационные

Студенты 2020

Алексеев Максим Будиш Михаил Вергелес Владислав Дариенко Дмитрий Евчук Даяна Ежкова Алина Жук Светлана Иванов Александр Константинов Евгений Кулик Виталий Ливитчук Максим Михайлищук Валентина Федяєва Евгения Чачко Натан
BFS DFS e-olymp IPO map string vector Абрамов Вложенные циклы НОД Отрезки Четность алгебра алгоритм арифметическая прогрессия вектор ветвление ветвления время геометрия график графы двумерные массивы действительные числа декартова система координат деление с остатком дерево дерево отрезков динамическое программирование закономерность замена игра интервал квадрат квадратная матрица количество комбинаторика координатная плоскость координаты линейные вычисления логарифм максимум массив массивы математика матрица матрицы минимальное количество минимум многомерные массивы модуль наибольший общий делитель натуральные числа неориентированный граф окружность ориентированный граф остаток от деления очередь палиндром перестановки периметр площадь площадь прямоугольника погрешность подстрока поиск поиск в глубину поиск в ширину последовательность потоковая обработка принадлежность принадлежность точки программы с ветвлением произведение промежуток простые числа прямоугольник радиус разность расстояние рекурсия ряд. ряд Тейлора символы синус скобки скорость сортировка сортировка массива среднее арифметическое стек строка строки структура структуры структуры данных сумма сумма ряда сумма цифр таблица теория чисел точка точность треугольник умножение матриц условие условные операторы факториал фигура функции функция целые числа цикл цикл for циклы часы числа число шахматы шифрование

Введите адрес для отправки новостей

Іванов Вячеслав Володимирович (22)
Ілларіонова Марія Валеріївна (20)
Зелінський Вячеслав Олександрович (19)
Вустянюк Ігор Дмитрович (19)
Сплошнов Кирилл (18)
Таран Таня (17)
Гордийчук Вадим (15)
Корнилова Таня (14)
Денисова Ольга (14)
Калачьов Андрій Сергійович (14)

Студенты 2019

Ізбаш Кірілл Євгенович Алексютенко Евеліна Олександрівна Андрєєв Борис Володимирович Балицький Ілля Олегович Белоченко Олексій Євгенович Богач Олексій Олексійович Воротов Дмитро Вадимович Гербалі Нікіта Едуардович Гриньків Владислав Олегович Діденко Богдан Миколайович Жарка Марія Сергіївна Жирко Микола Віталійович Захаренко Володимир Сергійович Зозуля Аліна Олександрівна Кадочніков Даніїл Сергійович Казарян Лаура Артурівна Колесник Кирило Віталійович Крачилова Вікторія Дмитрівна Кулик Данііл Вячеславович Курочкін Матвій Ростиславович Лотоцька Ірина Олександрівна Малихіна Аліна Валеріївна Мартинюк Андрій Ігорович Мацалишенко Павло Олександрович Метасов Андрій Сергійович Нагорнюк Владислав Сергійович Осипенко Тетяна Дмитрівна Писаревська Наталія Олександрівна Радчин Євгеній Михайлович Рапчинський Олександр Дем'янович Репнін Микита Анатолійович Рогулін Артем Олександрович Розін Олександр Андрійович Романцова Катерина Юріївна Рудь Микита Русланович Савицька Єлізавета Олександрівна Стасюк Владислав Дмитрович Сторожев Олег Ігорович Строгуш Микита Юрійович Фіщук Євген Богданович Хоробрих Ніна Сергіївна Цивінська Анна Сергіївна Цушко Валентин Тарасович Чунеєв Ілля Олександрович Шиманський Владислав Олександрович Шкафер Олександр Олександрович

Студенты 2018

Євчук Максим Єгоричева Поліна Іванов Віктор Бебік Владислав Боурош Юліана Боурош Юліана Бутник Михайло Веремйов Кирил Волощук Владислав Гук Аліна Даніленко Дарія Довгань Олександр Дроздін Володимир Дуков Іван Зінов'єв Андрій Кірєєв Іван Кадзевич Даніїл Калінін Дмитро Калаус Олександр Козиний Николай Колаєв Олександр Лісовець Дмитро Литвиненко Інна Лозинський Дмитро Масальський Руслан Метри Ніколь Мога Олександр Ігорович Мозгунов Данило Найдьонова Дар'я Недєлєва Ганна Підгорний Богдан Павлов Богдан Рудніцький Євгеній Севастьянова Єлизавета Семерня Нікіта Ткачова Таїсія Федина Наталія Шеванов Владислав Шихова Олена Шпилевський Нікіта Юрковська Яна

Студенты 2017

Аль-Омарі Амір Олександрович Бондаренко Кирило Сергійович Бондаренко Кирило Сергійович Василевський Іван Юрійович Волинець Олександр Олександрович Волков Кирило Сергійович Волков Кирило Сергійович Ворохта Аліса Юріївна Григорян Костянтин Ашотович Данілов Андрій Ігорович Данілов Андрій Ігорович Джашимов Антон Рауфович Джашимов Антон Рауфович Дьяченко Александр Дьяченко Александр Жуков Павло Петрович Колчинська Яна Євгенівна Крутоголов Данило Геннадійович Лісовой Андрій Денисович Ларікова Валерія Володимирівна Ларікова Валерія Володимирівна М'ясоєдов Іван Ігорович М'ясоєдов Іван Ігорович М'ясоєдов Іван Ігорович Міловська Карина Миколаївна Міловська Карина Миколаївна Мартинюк Георгій Олександрович Мирза Дмитро Валерійович Мирза Дмитро Валерійович Мороз Дмитро Володимирович Пасенченко Томас Олексійович Пасенченко Томас Олексійович Пенчев Володимир Костянтинович Пушкін Нікіта Глібович Рябова Олександра Дмитрівна Савчак Данило Дмитрович Стойловський Іван Миколайович Стойловський Іван Миколайович Філістовіч Олександра Валентинівна Чернецький Андрій-Святозар Олексійович Чернецький Андрій-Святозар Олексійович Чернобровкін Артем Валерійович Чернобровкін Артем Валерійович Черноморець Ілля Олександрович Юдін Даніїл Олегович

Студенты 2016

Алла Марокко Андреев Даниил Вадим Гордийчук Валентина Андриеш Вдовиченко Оля Веранян Герман Витальевич Дан Сытников Дяченко Александр Геннадьевич Куперман Антон Лена Бригарь Павел Курьянов Пересичный Никита Алексеевич Саркисян Роман Тимур Фирсов Эммануил Прокопов Юдин Даниил Ялымова Иванна Валентиновна

Студенты 2015

Гончарова Алина Грешилов Константин Демиденко Кирилл Дмитриев Александр Загинайло Павел Ивасенко Настя Калищук Вадим Коломеец Александр Кондратюк Настя Корнилова Таня Коциевский Станислав Кудымовская Вика Локтев Антон Максимова Женя Молоканов Юра Носов Максим Панько Настя Писова Катя Сиденко Радомир Сплошнов Кирилл Таран Таня Филипчук Настя Холодков Юра Шохина Аня Яроцкий Андрей

Студенты 2014

Іванов Вячеслав Ілларіонова Марія Байков Дмитро Бровко Ілля Бронфен-Бова Вустянюк Ігор Григорян Артак Гусак Дмитро Денисова Ольга Зелінський Вячеслав Кібакова Надія Калачьов Андрій Карагяур Мілан Карташов Денис Кваша Дар`я Ковальський Олександр Коновалов Сергій Куленюк Денис Марченко Філіп Нарусевич Никита Недомовний Владислав Носуленко Марк Оніщенко Олександр Осецимський Анатолій Сіренко Валерія Сабіров Ільдар Сорокіна Поліна Стеблинський Ігор Танащук Григорій Фесенко Катерина Царев Микола Чежеумова Анна Швандт Максим Щебетовський Дмитро Янішевська Альона
Proudly powered by WordPress | Theme: Sunspot by WordPress.com.
Translate