В какие дни следует продавать волосы, чтобы получить максимальную прибыль? - 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(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д