17.8.28 搜狐編程題-JS.. 待完善

暴力做:

測試用例
//arr = ['7', '5', '1', '0', '0', '0'].map(Number)  // 1
//arr = ['0', '0', '4', '0', '0', '1'].map(Number)  // 2

var arr = readline().split(" ").map(Number);
var sum = 0;
var str = arr.join();
while (str !== '0,0,0,0,0,0') {
    sum += arr[5] + arr[4] + arr[3] + Math.ceil(arr[2] / 4);
    //差的個數
    var dis2 = arr[1] - arr[3] * 5 //可能爲負
    var dis1 = arr[0] - arr[4] * 11
    arr[1] = diss2 > 0 ? diss2 : 0;
    arr[0] = dis1 > 0 ? dis1 : 0;
    if (arr[1] == 0) {//2填充4箱子填完了不夠,需要讓1去填
        arr[0] = arr[0]+dis2*4 > 0 ? arr[0]+dis2*4 : 0;
    }
    //需要填補的3字格
    var dis = (4 - arr[2] % 4);
    if (dis === 3) {
        if (arr[1] > 5) {
            sum += Math.ceil((arr[1] - 5) * 4 / 36);
            arr[0] = (arr[0] - 7) > 0 ? (arr[0] - 7) : 0;
            sum += Math.ceil(arr[0] / 36);
        } else {
            var disTemp = 27 - arr[1] * 4 ;
            arr[0] = (arr[0] - disTemp) > 0 ? (arr[0] - disTemp) : 0;
            sum += Math.ceil(arr[0] / 36);
        }
    }
    if (dis === 2) {
        if (arr[1] > 3) {
            sum += Math.ceil((arr[1] - 3) * 4 / 36);
            arr[0] = (arr[0] - 6) > 0 ? (arr[0] - 6) : 0;
            sum += Math.ceil(arr[0] / 36);
        } else {
            var disTemp = 18 - arr[1] * 4 ;
            arr[0] = (arr[0] - disTemp) > 0 ? (arr[0] - disTemp) : 0;
            sum += Math.ceil(arr[0] / 36);
        }
    }
    if (dis === 1) {
        if (arr[1] > 1) {
            sum += Math.ceil((arr[1] - 1) * 4 / 36);
            arr[0] = (arr[0] - 5) > 0 ? (arr[0] - 5) : 0;
            sum += Math.ceil(arr[0] / 36);
        } else {
            var disTemp = 9 - arr[1] * 4 ;
            arr[0] = (arr[0] - disTemp) > 0 ? (arr[0] - disTemp) : 0;
            sum += Math.ceil(arr[0] / 36);
        }
    }
    print(result);
    arr = readline().split(" ").map(Number);
    str = arr.join();
}
//console.log(sum);

題目一

// 做法顯示時間過長...套用循環太多了... 40%通過
var arr1 = readline().split(' ').map(Number);
var n = arr1[0];
var m = arr1[1];
var arr2 = readline().split(' ').map(Number);

var index = 0;
var result = [arr2[0]];
while (result.length < n) {

    arr2.forEach(function(v) {
        if (result.length == 1) {
            for (var i = 1; i < result[0]; i++) {
                result[result.length] = v;
            }
        } else {
            for (var i = 0; i < result[index]; i++) {
                result[result.length] = v;
            }
        }
        index++;
    })

    //console.log('last:',index,result);
}
result = result.slice(0, n);
result.forEach(function(v) {
    print(v)
})
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章