В какие дни следует продавать волосы, чтобы получить максимальную прибыль? - C#
Формулировка задачи:
Одного неформала выгнали с работы, и теперь ему надо как-то зарабатывать себе на жизнь. Поразмыслив, он решил, что сможет иметь очень неплохие деньги на продаже собственных волос. Известно, что пункты приема покупают волосы произвольной длины стоимостью С у.е. за каждый сантиметр. Так как волосяной рынок является очень динамичным, то цена одного сантиметра волос меняется каждый день как и курс валют. Неформал является очень хорошим бизнес-аналитиком. Он смог вычислить, какой будет цена одного сантиметра волос в каждый из ближайших N дней (для удобства пронумеруем дни в хронологическом порядке от 0 до N-1). Теперь он хочет определить, в какие из этих дней ему следует продавать волосы, чтобы по истечению всех N дней заработать максимальное количество денег. Заметим, что волосы у неформала растут только ночью и вырастают на 1 сантиметр за ночь. Следует также учесть, что до 0-го дня неформал с горя подстригся наголо и к 0-му дню длина его волос составляла 1 сантиметр.
Помогите пожалуйста
Решение задачи: «В какие дни следует продавать волосы, чтобы получить максимальную прибыль?»
textual
Листинг программы
- #include <fstream.h>
- #include <fstream.h>
- void main(){
- ifstream fin ("input.txt");
- ofstream fout ("output.txt");
- int c[100],i,max=0,last=-1,s=0,n;
- fin>> n; // input
- for (i=0;i< n;i++) fin> > c[ i ];
- fin.close();
- if (n=1) fout<<a[0] else
- do{
- for (i=max;i<n;i++)
- if (c[ i ]> c[max])
- max=i; //max - максимальная цена
- s+=(max-last)*c[max]; // Количество дней, прошедших с момента последней продажи * на максимальную цену
- last=max++; // день последней продажи
- }while (max<n);
- fout<<s;
- fout.close();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д