https://www.acmicpc.net/problem/25965
25965번: 미션 도네이션
리그오브전설 스트리머 순범이는 트위치 플랫폼으로 시청자를 끌어모으고 있다. 순범이는 '트윕' 음성 도네이션을 통해 시청자들과 소통하고는 한다. 순범이는 트윕에 '미션' 기능이 있다는 것
www.acmicpc.net
문제
리그오브전설 스트리머 순범이는 트위치 플랫폼으로 시청자를 끌어모으고 있다. 순범이는 '트윕' 음성 도네이션을 통해 시청자들과 소통하고는 한다. 순범이는 트윕에 '미션' 기능이 있다는 것을 알고, 자신의 리그오브 전설 실력을 활용해 매 게임마다 미션 기능으로 돈을 끌어모으려고 한다. 미션 기능을 이용하는 시청자가 너무 많을 때도 있어서 순범이는 게임이 끝난 후 자신이 미션으로 받을 수 있는 총 도네이션 금액이 얼마인지를 구하는 계산 프로그램을 작성하고자 한다. 각 게임들은 여러 개의 미션으로 이루어져 있으며, 각 미션들은 킬당 K 원 추가, 데스당 D 원 차감, 어시스트당 A 원 추가의 형식으로 주어진다. 만약 어떤 미션의 계산 금액이 0보다 작은 경우에는 총 금액에 이를 합산하지 않는다. 각 게임을 새로 시작할 때에는 도네이션 금액은 0부터 시작한다. 순범이가 각 게임을 마칠 때마다 받게 되는 총 도네이션 금액을 구해보자.
입력
첫 줄에 총 게임의 수 N 이 주어진다. (1≤N≤50)
각 게임마다 첫 줄에 총 미션의 수 M 이 주어지며, M 개의 줄에 거쳐 각 미션의 내용이 주어진다. (1≤M≤100)
각 미션들은 킬당 추가해야 하는 금액 K , 데스당 차감해야 하는 금액 D , 어시스트당 추가해야 하는 금액 A 가 공백으로 구분되어 주어진다. (1000≤K,D,A≤5×107)
각 게임당 마지막 줄에 게임이 종료된 후 순범이의 킬 k , 데스 d , 어시스트 a 가 공백으로 구분해 주어진다. (0≤k,d,a≤50)
출력
각 게임마다 순범이가 받는 총 도네이션 금액을 순서대로 한 줄씩 출력한다.
예제 입력 1
2
2
1000 2000 3000
1000 4000 1000
4 1 2
1
4000 3000 2000
2 4 2
예제 출력 1
10000
0
예제 입력 2
1
3
9146 6114 4301
7587 5074 9944
3175 9794 3119
1 5 5
예제 출력 2
32018
예제 입력 3
3
4
13239 13091 11619
10431 6300 10235
14340 8606 9048
12777 10975 14396
8 2 0
3
8937 9151 1868
13650 2597 1531
13746 6384 11839
4 0 9
2
3934 5773 8056
11015 5695 9285
13 6 14
예제 출력 3
328352
282474
368303
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
using namespace std;
#include <iostream>
#include <string>
#include <cstring>
#include <algorithm>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <functional>
#include <cmath>
#include <map>
#include <set>
#define _CRT_SECURE_NO_WARNINGS
#define INF 987654321
#define ll long long
typedef pair<int, int> PII;
int t, mission;
int k, d, a;
int main() {
cin >> t;
while (t--) {
ll ans = 0, temp = 0;
ll arr[101][3];
cin >> mission;
for (int i = 0; i < mission; i++) {
cin >> arr[i][0] >> arr[i][1] >> arr[i][2];
}
cin >> k >> d >> a;
for (int i = 0; i < mission; i++) {
temp += (arr[i][0] * k - arr[i][1] * d + arr[i][2] * a);
if (temp < 0) temp = 0;
ans += temp;
temp = 0;
}
cout << ans << "\n";
}
return 0;
}
|
cs |
'🔻PS > Baekjoon' 카테고리의 다른 글
[Baekjoon] 백준 25495 에어팟 C++ (0) | 2022.11.25 |
---|---|
[Baekjoon] 백준 25949 단순한 문제 (Small) C++ (2) | 2022.11.24 |
[Baekjoon] 백준 26004 HI-ARC C++ (0) | 2022.11.20 |
[Baekjoon] 백준 14730 謎紛芥索紀 (Small) C++ (2) | 2022.11.19 |
[Baekjoon] 백준 10101 삼각형 외우기 C++ (2) | 2022.11.17 |