Untitled

 avatar
unknown
plain_text
a year ago
1.2 kB
5
Indexable
struct max_profit max_profit_period(struct day *day_one, int year) {
    // TODO: implement this function
    struct day *current = day_one;

    double max_profit = -10000000.00;
    double current_sum = 0;
    struct max_profit max_profit_struct = {0};
    
    struct date current_start_date = day_one->date;

    while (current != NULL) {
        if (current->date.year == year) {
            if (isWeekend(current->date)) {
                current_sum += (total_income(current) - 50);
            }

            else {
                current_sum += (total_income(current) - 35);
            }
            
            if (current_sum < 0) {
                current_sum = 0;
                current_start_date = current->date;
            }

            if (current_sum > max_profit) {
                max_profit = current_sum;
                max_profit_struct.start_date = current_start_date;
                max_profit_struct.end_date = current->date;
            }
        }
        current = current->next;

    }

    max_profit_struct.profit = max_profit;

    if (compare_date(max_profit_struct.end_date, max_profit_struct.start_date) == 0) {
        max_profit_struct.end_date.year = 0;
    }

    return max_profit_struct;

}
Editor is loading...
Leave a Comment