작성일 :

문제 링크

7130번 - Milk and Honey

설명

n개의 밭이 주어지고, 각 밭에 소 또는 벌을 배치할 때 총 행복도의 최댓값을 구하는 문제입니다.

각 밭은 독립적이므로, 소를 배치했을 때와 벌을 배치했을 때 중 더 큰 값을 선택합니다.


접근법

각 밭에 대해 소를 배치한 행복도와 벌을 배치한 행복도를 계산합니다.

둘 중 큰 값을 총합에 더하여 출력합니다.


Code

C#

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;

class Program {
  static void Main() {
    var first = Array.ConvertAll(Console.ReadLine()!.Split(), int.Parse);
    var m = first[0];
    var h = first[1];
    var n = int.Parse(Console.ReadLine()!);

    var total = 0;
    for (var i = 0; i < n; i++) {
      var p = Array.ConvertAll(Console.ReadLine()!.Split(), int.Parse);
      var c = p[0];
      var b = p[1];
      var milk = m * c;
      var honey = h * b;
      total += Math.Max(milk, honey);
    }

    Console.WriteLine(total);
  }
}

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int m, h; cin >> m >> h;
  int n; cin >> n;

  int total = 0;
  for (int i = 0; i < n; i++) {
    int c, b; cin >> c >> b;
    int milk = m * c;
    int honey = h * b;
    total += max(milk, honey);
  }

  cout << total << "\n";

  return 0;
}