Quantcast
Channel: CodeChef Discuss - latest questions
Viewing all articles
Browse latest Browse all 40121

Picking a Group of Tasks while Minimising Time

$
0
0

The Problem

We are given N number of tasks of N days each. Each takes time t_i to performed. Our job is to find out which combination of tasks minimizes the total amount of time taken. The constraint is that one task has to be performed every 3 days.

Sample Inputs/Outputs

Input 1
3 2 1 1 2 3 1 3 2 1
Output 1
4

Here the correct solution is t_3, t_4, t_7, t_10

Input 2
1 2 3 3 1 2 5 6 1
Output 2
6

Here the correct solution is t_3, t_6, t_9

My Thoughts

I believe this can be solved using dynamic programming or a modification of the Continuous Knapsack Problem. But I don't know how.

I thought of creating a graph starting with the first three tasks and having the next possible tasks as their children. Then to use the shortest path algorithm with weighted vertexes instead of weighted edges. But with values of N above even 1000, the memory limit of 32 MB will be easily exceeded.

I'm kind of thinking that there should be a mathematically creative solution to this?

Question

What is the most efficient solution to this problem with the following limits?

1 ≤ N ≤ 2×10^5

The number of minutes of SUPW each day is between 0 and 10^4, inclusive.

Thanks.


Viewing all articles
Browse latest Browse all 40121

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>