Const
n=15;
var
s:array[1..n] of real;
st,p:real;
i,k:integer;
begin
Writeln('Введите ',n,' сумм остатков');
st:=0;
for i:=1 to n do
begin Read(s[i]); st:=st+s[i] end;
Writeln('Удельные веса остатков по магазинам');
k:=0;
for i:=1 to 15 do
begin
p:=s[i]/st*100;
Writeln(i,' - ',p:0:1);
if p>12 then Inc(k)
end;
Write('Количество магазинов с уд. весом остатков >12%, равно ');
Writeln(k)
end.
<em><u>Тестовое решение:</u></em>
Введите 15 сумм остатков
0.37 1.5 2.11 3.4 9.3 2.89 4 0.85 0 0.73 4.2 5.05 3.5 2.18 0.94
Удельные веса остатков по магазинам
1 - 0.9
2 - 3.7
3 - 5.1
4 - 8.3
5 - 22.7
6 - 7.0
7 - 9.8
8 - 2.1
9 - 0.0
10 - 1.8
11 - 10.2
12 - 12.3
13 - 8.5
14 - 5.3
15 - 2.3
Количество магазинов с уд. весом остатков >12%, равно 2
<em><u>Полное решение по заданию находится в файле формата MS Word-2003</u></em>
#include <iostream>
#include <algorithm>
using std::cin;
using std::cout;
using std::sort;
int arr[3];
void min(){
sort(arr, arr+3);
cout << arr[0];
}
int main()
{
for (int i = 0; i < 3; ++i)
{
cin >> arr[i];
}
min();
return 0;
}
1)
АВ = 40 / 20 = 2 часа (минимум)
АС + СВ = 30 / 30 + 25 / 20 = 2,25 часа
2) Рассмотрим остатки камней и кто выигрывает. Игрок - тот кто сейчас ходит, противник - тот кто ходит следующим. Рассматриваются только разумные ходы
1 камень - игрок однозначно проигрывает так как ход таки делать надо
2, 3, 4 камня - легко свести к ситуации 1 камня, противник однозначно проигрывает
5 камней - сколько не бери, все равно попадешь в ситуацию 2-4 камня, игрок однозначно проигрывает
6 камней - если свести ситуацию к ситуации 5 камней, то противник однозначно проиграет, потому надо взять 1 камень