32 lines
569 B
Text
32 lines
569 B
Text
|
|
int program (int argc, string[] argv) {
|
||
|
|
var gas = new int[]{1,2,3,4,5};
|
||
|
|
var costs = new int[]{3,4,5,1,2};
|
||
|
|
var size = 5;
|
||
|
|
var index = can_complete(gas, costs, size);
|
||
|
|
return index;
|
||
|
|
}
|
||
|
|
|
||
|
|
int can_complete(int[] gas, int[] costs, int size) {
|
||
|
|
var curr = 0;
|
||
|
|
var total = 0;
|
||
|
|
var diff = 0;
|
||
|
|
var startIdx = 0;
|
||
|
|
|
||
|
|
for (var i = 0; i < size; i = i + 1;) {
|
||
|
|
diff = gas[i] - costs[i];
|
||
|
|
total = total + diff;
|
||
|
|
curr = curr + diff;
|
||
|
|
|
||
|
|
if (curr < 0) {
|
||
|
|
startIdx = i + 1;
|
||
|
|
curr = 0;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if (total >= 0) {
|
||
|
|
return startIdx;
|
||
|
|
}
|
||
|
|
|
||
|
|
return -1;
|
||
|
|
}
|