Var a: array[1..100000] of integer; n, i, j, max, prmax: integer; begin read(n); for i:=1 to n do read(a[i]); max:=a[1]; for i:=2 to n do if a[i] >= max then begin write(max, ' '); prmax:=max; max:=a[i] end else if a[i] > prmax then begin write(a[i], ' '); prmax:=a[i] end else write(prmax, ' '); <span>end.
Попробовал так написать, думаю, ввод-вывод с файла сам сможешь прикрутить...</span>
В цикле While (пока в бочке не будет необходимых X литров воды) прибавлять по N литров (1,2,3,4,5 - в разных циклах). Т.е. бочка = бочка + Nлитровый сосуд. На проверку условие: Бочка<X литров. Внутри цикла считаем, сколько раз он выполнялся. По окончании считаем разницу между объемом бочки и фактическим количеством воды, налитым в итоге