the background is in https://www.hackerrank.com/challenges/task-scheduling
1. pruning.
2. try to use the previous parsing result.
3. 当insert index小于 max index的时候, 可以将max index 之前的元素全部删除。
4. (4, 3) 和 (4, 2) 调换顺序, 不会影响结果。
5. 动态最大值避免被后值覆盖
i.e.
a[0] = K, is the max value
for(int i = 0; i < end ; i++)
{
if(a[i] > a[0])
{
maxIndex = i; //可能a[2] = K + 2, a[3] = K + 1, 最大index 应该是2但是被后者3覆盖。
}
}
6. don't use elementAt if the class is not inherited from IList, you'll be killed by using it.... (C#)
7. big int side test
8. plus and add overflow problem.