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

Обсуждение задачи 1131. Копирование

WA10, help me please)
Послано Roman Hrynevych 21 янв 2020 01:34
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

int main() {

   int n, k;

   scanf("%d %d", &n, &k);

   if (n < 1 || n > pow(10, 9) || k < 1 || k > pow(10, 9)) {
      return 0;
   }

   unsigned long long result = 0;
   unsigned long long buffer = 1;
   n--;

   for (int i = 0; n >= 0; i++) {

      n -= buffer;
      result++;
      buffer *= 2;

      if (n <= 0) {
         printf("%llu\n", result);
         return 0;
      }

      if (buffer >= k) {
         buffer = k;
         double count = (double)n / buffer;
         if (count != (long long)count) {
            count++;
         }
         result += count;
         printf("%llu\n", result);
         return 0;
      }
   }
   return 0;
}

Edited by author 21.01.2020 01:57
Re: WA10, help me please)
Послано Kin 1 сен 2021 15:18
Test 10 is n = 1