Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2019, 22:04   #1
GG_
Новичок
Джуниор
 
Регистрация: 25.09.2019
Сообщений: 1
По умолчанию [C++] Интересная задача про выдачу денег из копилки

ЗАСТОПАРИЛСЯ НА ПОСЛЕДНИМ ЦИКЛЕ НЕ ЗНАЮ КАК РЕШИТЬ

Становится все более и более популярным не покупать вещи, а делиться ими.

Одна из таких многообещающих систем это делёж денег. Есть несколько её разновидностей, но мы рассмотрим ту, в которой можно бесплатно положить или взять деньги из общей копилки.

Из-за такой популярности тяжело поддерживать систему стабильной, поэтому запрос на выдачу денег надо делать заранее за несколько дней. Вы разрабатываете автоматическую систему для этой копилки. Каждый день у вас есть n запросов на выдачу денег и m на пополнение. Они оба описывается числом x. Изначально копилка пуста. Событие описывются числом x:

Если x>0, тогда это пополнение. Количество денег в копилке увеличивается на x.
Если x<0, тогда это запросы на выдачу |x| денег. Если запрос одобряется, количество денег в копилке уменьшается на |x|. Иначе оно не меняется.
К сожалению, денег в копилке не всегда достаточно, чтобы удовлетворить все запросы. Ваша цель выбрать максимальное подмножество запросов, которое можно выполнить.

Входные данные
Первая строка содержит два целых числа n и m (1≤n,m≤105).

Каждая из следующих n+m строк содержит число x (1≤|x|≤109), описывающее событие. События описаны в хронологическом порядке, никакие два из них не происходят одновременно.

Выходные данные
В ответе выведите n+m строк.

Для каждого запроса пополнения выведите "resupplied".

Для запросов выдачи выведите "approved" или "declined" в зависимости от того, одобряете ли запрос.





Вот код который я набросал ( не смотрите на не нужные библиотеки сверху)

Код:
#include <iostream>
#include <functional>
//#include <array>
#include <cmath>
#include <iterator> 
#include <vector>
#include <algorithm>

using namespace std;



int main()
{
	int x;
	vector <int> bank_obch;
	
	vector <int> bank_plus;
	int bank_plus1 = 0;
	vector <int> bank_minus;
	
	int n;
	int m;

	bool d = true;

	cin >> n >> m;
	
	while (d == true) {

		if ((1 <= n) && (n <= 100000)) {
			d = false;
		}
		else {
			cin >> n;
		}

		if ((1 <= m) && (m <= n)) {
			d = false;
		}
		else {
			cin >> m;
		}
	}

	bank_plus.resize(m);
	bank_minus.resize(n);
	bank_obch.resize(m + n);


	for (int i = 0; i < n+m; i++) {	 
			cin >> x;

			if ((1 <= abs(x)) && (abs(x) <= 1000000000)) {
				if (x < 0) {		
						bank_minus[i] = x;
				}

				if (x > 0) {
					bank_plus1 += x;
					
				}
			}
		
			
		
	}

	//sort(bank_minus.begin(), bank_minus.end(), greater<int>());

	int i;
	for ( i = 0; i < n; i++) {
		bank_plus1 -= bank_minus[i];

		if (!(bank_plus1 > 0)) {
			break;
		}

	}


}



ЗАСТОПАРИЛСЯ НА ПОСЛЕДНИМ ЦИКЛЕ НЕ ЗНАЮ КАК РЕШИТЬ
______________________
Используйте тег [CODE] (кнопка [CODE] в форме сообщения) при вставке кода на форум. Подробнее в FAQ
GG_ вне форума Ответить с цитированием
Старый 26.09.2019, 09:52   #2
Desc
Участник клуба
 
Аватар для Desc
 
Регистрация: 21.11.2007
Сообщений: 1,063
По умолчанию Прикольно

Цитата:
Сообщение от GG_ Посмотреть сообщение
ЗАСТОПАРИЛСЯ НА ПОСЛЕДНИМ ЦИКЛЕ НЕ ЗНАЮ КАК РЕШИТЬ
Вы до него не доходите.
Введите x 1000000000 раз и перейдете к последнему циклу
Код:
for (int i = 0; i < n+m; i++) {
cin >> x;
if ((1 <= abs(x)) && (abs(x) <= 1000000000))
P. S.
x придется вводить (n+m) раз
I am not a wizard, I am just learning.

Последний раз редактировалось Desc; 26.09.2019 в 10:22.
Desc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нигде не нашел триггера на выдачу новых кв, вообще ничего на выдачу кв marluna Помощь студентам 5 16.12.2016 13:41
задача паскаль: Разложить (выдать) n-ую сумму денег по купюрам Flower2 Помощь студентам 10 10.06.2014 20:15
Задача: Хватит ли денег sp.caster Visual C++ 7 05.05.2011 07:09
Задача на паскале (набрать заданную сумму денег) Старый Gilbert Помощь студентам 4 21.03.2011 15:12
Жадный алгоритм. Задача о размене денег. Multiman Помощь студентам 4 18.10.2010 13:15