Василий мечтает о карьере преподавателя информатики, поэтому хочет улучшить свою оценку по этому предмету. в школе, в которой учится вася, на уроках информатики ответы учеников оцениваются целым числом от 2 до 5. в итоге оценка по информатике выставляется как среднее арифметическое оценок на всех уроках, округленное до ближайшего целого числа. если среднее значение находится ровно посередине между двумя целыми числами, то оценка округляется вверх. т. е. если например средняя оценка 3.3, то итоговая будет 3, а если 3.5, то итоговая оценка 4. вася стремится получить итоговую оценку по информатике не ниже 4 . к сожалению, он получил на уроках x двоек, y троек и z четверок. теперь вася планирует получить несколько пятерок. причем он хочет, чтобы итоговая оценка была не меньше 4 . ему надо понять, какое минимальное количество пятерок ему необходимо получить, чтобы добиться своей цели. васи написав программу, которая по заданным целым неотрицательные числам a, b и c определяет минимальное количество пятерок, которое необходимо получить василию, чтобы его итоговая оценка по информатике была не меньше 4 .
формат ввода
входные данные содержат три строки. первая строка содержит целое неотрицательное число x, вторая строка содержит целое неотрицательное число y, третья строка содержит целое неотрицательное число z (0 ≤ x, y, z ≤ 10**15, x + y + z ≥ 1).
формат вывода
выходные данные должны содержать одно число: минимальное число пятерок, которое необходимо получить ученику, чтобы итоговая оценка была не меньше 4 .
пример ввод 2 0 0 вывод 2

mila7772 mila7772    1   12.10.2019 11:09    18

Ответы
lisa1236 lisa1236  10.10.2020 06:08

#include <QCoreApplication>

#include <bits/stdc++.h>

#include <iostream>

#include <stdio.h>

using namespace std;

int main(int argc, char *argv[])

{

   QCoreApplication ap(argc, argv);

   FILE *fp, *fout;

   long long a, b, c, m;

   fp = fopen ("0","r+");

   fscanf (fp, "%lld\n%lld\n%lld", &a, &b, &c);

   fclose(fp);

   long long sum = 2 * a + 3 * b + 4 * c;

   long long cnt = a + b + c;

   long long l = 0, r = cnt + 1;

   // Алгоритм бинарного поиска

   while (l < r)

   {

        m = (l + r) / 2;

       if ((sum + 5.0 * m) / (cnt + m) < 3.5)

           l = m + 1;

       else

           r = m;

   }

   fout = fopen ("0.a","w+");

   fprintf (fout,"%lld",l);

   fclose(fout);

   return

Объяснение:

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика