Задача: Время обслуживания. Для каждого посетителя парикмахерской (с одним мастером) известны следующие величины: [latex]t[/latex] — момент его прихода и [latex]\tau[/latex] — продолжительность его обслуживания. Сколько клиентов обслужит мастер за смену продолжительностью [latex]T[/latex]? Сколько рабочего времени он потратит на обслуживание?
[latex]T[/latex] | t1 | t2 | k | T1 |
600 | 200 210 500 550 | 50 300 10 50 | 4 | 410 |
600 | 50 100 200 498 550 | 30 50 200 10 40 | 5 | 330 |
600 | 0 80 100 367 680 | 20 30 20 30 50 | 4 | 100 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <iostream> using namespace std; int main() { int t1, t2, T2, T; T2 = 0; int k = 0; scanf ("%d", &T); //Задаем продолжительность смены парикмахера int T1 = 0; while ( EOF!=scanf("%d%d", &t1, &t2) ) { t1 = max(t1, T2); //Выбираем максимальное из времени прихода текущего клиента и ухода предыдущего if ( (t1>T) || (T2>T) ) break;//Условие выхода из цикла T2 = t1 + t2; //Расчетное время ухода предыдущего клиента T1 += t2; //Считаем общее время обслуживания k += 1; //Считаем количество обслуженных клиентов } printf("%d\n%d", k, T1); return 0; } |