ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1607. Такси

Help, please. WA#21
Послано Nikolay 25 окт 2008 16:55
#include <stdio.h>
int calculate(int a,int b,int c,int d);
void main(){
    int a=0,b=0,c=0,d=0;
    scanf("%d%d%d%d", &a, &b, &c, &d);
    printf("%d\n",calculate(a,b,c,d));
}
int calculate(int a,int b,int c,int d){
    bool m=true;
    if (a>c) return a;
    if (a==c||a+b>c) return c;
    if (c-d<a) return a+b;

    while(1){
        if (m){//c-a>=b){
            a+=b;m=false;
            if (a+b>c-d) return a;
        }
        else if (!m){//&&c-a>=d){
            c-=d;m=true;
            if (c<a+b) return c;
        }
        //else return a;
    }
}