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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2011, 20:31   #1
Sanek_ntsk
Пользователь
 
Регистрация: 08.11.2007
Сообщений: 91
По умолчанию Задача распродажа

Содержание задачи здесь: http://olympiads.ru/moscow/2010/mos/problems6-9.pdf Нарешал кое-что:
Код:
#include <iostream>
#include <fstream>
using namespace std;
 
int main(void)
{
int N, K, count = 0;
long A, B;
 
ifstream("input.txt", ios::in) >> N >> K >> A >> B;
int sumN = N*B, sumK = (K-1) * B;
 
if (A >= sumN || A >= sumK)
while (A >= sumN || A >= sumK || A >= B) {
int countN = 0, countK = 0;
if (A >= sumN) countN = N + 1;
if (A >= sumK) countK = K;
if (A == B) { count++; A -= B; }
else if (A - sumN > A - sumK) {
count += countN;
A -= sumN;
}
else {
count += countK;
A -= sumK;
}
}
else count = A / B;
 
ofstream("output.txt", ios::out) << count;
return 0;
}
Но такое решение проходит только половину тестов. Что подскажете?
Не мы такие, жизнь такая...
Sanek_ntsk вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск