#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <functional>
#include <string>
#include <math.h>
using namespace std;
bool compare(const pair<int, int> &a, const pair<int, int> &b) {
return a.first > b.first;
}
int main() {
vector< pair<int,int> > arr;
pair<int,int> temp = make_pair(0,0);
int answer = 0;
vector<int> num;
for(int i = 1; i < 9; i++) {
cin >> temp.first;
temp.second = i;
arr.push_back(temp);
}
sort(arr.begin(), arr.end(), compare);
for(int i = 0; i < 5; i++) {
answer+= arr[i].first;
num.push_back(arr[i].second);
}
sort(num.begin(), num.end());
cout << answer << endl;
for(int it : num)
cout << it << " ";
}
값을 pair로 받아와서 각 점수마다 인덱스 번호를 지정해준 후 높은 점수 순으로 sorting 한 후 상위 5개 따로 추려서 값을 더하고 인덱스 값을 순서대로 나열해주었습니다.
문제: https://www.acmicpc.net/problem/2822
'Problem Solving > 백준' 카테고리의 다른 글
[백준/C++] 10250번 ACM 호텔 (0) | 2022.01.28 |
---|---|
[백준/Python] 2606번 바이러스 (DFS,BFS,유니온파인드) (0) | 2022.01.28 |
[백준/C++] 2164번 카드2 (0) | 2022.01.26 |
[백준/C++] 11866번 요세푸스 문제 0 (0) | 2022.01.26 |
[백준/C++] 큐 2 / queue 구현 / 시간 단축 (0) | 2022.01.26 |