#!/bin/awk -f NR == 1 { screen = $1 } NR > 1 { min[++i] = $1 des[i] = $2 max[i] = $3 } END { for(i=1; i <= length(min); i++) { print min[i], des[i], max[i] totalmin += min[i] totaldes += des[i] totalmax += max[i] } print "total", totalmin, totaldes, totalmax print if(totaldes == totalmin) { for(i=1; i <= length(min); i++) result1[i] = min[i] } else { for(i=1; i <= length(min); i++) result1[i] = min[i] + (des[i] - min[i]) * (screen - totalmin) / (totaldes - totalmin) } for(i=1; i <= length(min); i++) print "result1", result1[i] print for(i=1; i <= length(min); i++) { if(result1[i] > max[i]) min[i] = des[i] = max[i] } totalmin = totaldes = totalmax = 0; for(i=1; i <= length(min); i++) { totalmin += min[i] totaldes += des[i] totalmax += max[i] } print "total", totalmin, totaldes, totalmax if(totaldes == totalmin) { for(i=1; i <= length(min); i++) result2[i] = min[i] } else { for(i=1; i <= length(min); i++) result2[i] = min[i] + (des[i] - min[i]) * (screen - totalmin) / (totaldes - totalmin) } for(i=1; i <= length(min); i++) print "result2", result2[i] }