BOJ 17509 And the Winner Is… Ourselves!
BOJ 17509 And the Winner Is… Ourselves!
문제링크 : https://www.acmicpc.net/problem/17509
요약
영어문제… 한국어로 간단히 해석해보자면 T(문제를 푸는데 걸리는 시간), V(틀린횟수)를 11번입력받는다. 문제를 풀 때마다 (T + V*20)이 페널티 점수로 더해진다. 모든 문제를 풀었을 때 가장 작은 페널티 점수를 출력하는 문제.
풀이
T와 V*20값을 더해서 페널티 점수값을 구하므로 T와 V는 서로에게 영향을 주지 않는다. T는 푸는 문제의 개수가 늘어날떄마다 누적시간이 늘어나므로 문제를 푸는데 걸리는 시간이 작은것부터 풀어야 가장 작은 페널티 점수를 받을수 있다. 정렬해주어서 순서대로 페널티점수를 구해주었다.
코드
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<pair<int, int>>pq;
int T, V,t,p;
int main() {
for (int i = 0; i < 11; i++) {
cin >> T >> V;
pq.push_back({ T,V });
}
sort(pq.begin(), pq.end());
for (int i = 0; i < 11; i++) {
t += pq[i].first;
p += t + pq[i].second * 20;
}
cout << p << "\n";
}
Comments