2017年4月10日 星期一

ITSA 53 - [Problem 4] 窈窕飲食規劃 - 參考答案

Difficulty: Medium
Ref: ITSA 53 - [Problem 4] 窈窕飲食規劃
/*******************************************************/
/* ITSA 53 - [Problem 4] 窈窕飲食規劃                  */
/* Author: awei0905  [at]  awei0905.blogspot.tw        */
/* Version: 2017/04/10                                 */
/*******************************************************/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int main() {
 int W, N, P, item;
 float food[10][4], ans[10][3] = { 0 }, sumc = 0, suml = 0, Mc, unit;
 scanf("%d%d%d", &W, &N, &P);
 for (int i = 0; i < N; i++) {
  scanf("%f%f%f", &food[i][3], &food[i][1], &food[i][2]);
  food[i][1] /= food[i][3];
  food[i][2] /= food[i][3];
  food[i][0] = 1;
 }
 for (int i = 1; i <= W; i++) {
  item = -1;
  Mc = -1;
  for (int j = 0; j < N; j++) {
   if (food[j][3] <= 0) continue;
   if (food[j][P] > Mc) Mc = food[item = j][P];
  }
  unit = food[item][3] < 1 ? food[item][3] : 1;
  ans[item][0] += unit;
  ans[item][1] += food[item][1] * unit;
  ans[item][2] += food[item][2] * unit;
  food[item][3] -= 1;
 }

 for (int i = 0; i < N; i++) {
  printf("%.3f ", ans[i][0]);
  sumc += ans[i][1];
  suml += ans[i][2];
 }
 printf("%.3f %.3f\n", sumc, suml);
}
Debug: I/O
5 4 1
1 3 6
2 4 5
3 2 7
2.5 4.5 4
5 4 2
1 3 6
2 4 5
3 2 7
2.5 4.5 4
1.000 2.000 0.000 2.000 10.600 14.200
1.000 2.000 2.000 0.000 8.333 15.667

沒有留言:

張貼留言