제출 #90723

#제출 시각아이디문제언어결과실행 시간메모리
90723YottaByte학교 설립 (IZhO13_school)C++14
15 / 100
269 ms12224 KiB
#include <algorithm>
#include <iostream>
#include <vector>
#include <queue>

using namespace std;

#define pb push_back
#define mk make_pair
#define fr first
#define sc second
#define ll long long

int n, m, s;
vector < pair < int, int > > v1, v2;
priority_queue < int > pq;
priority_queue < int > q;

ll count(vector < pair < int, int > > v, priority_queue < int > q)
{
	ll res = 0;
	for(int i = 0; i < m; i++)
	{
		res += v[i].fr;
	}
	
	for(int i = 0; i < s; i++)
	{
		res += q.top();
		q.pop();
	}
	
	return res;
}

ll count1(vector < pair < int, int > > v, priority_queue < int > q)
{
	ll res = 0;
	for(int i = 0; i < m; i++)
	{
		res += q.top();
		q.pop();
	}
	
	for(int i = 0; i < s; i++)
	{
		res += v[i].fr;
	}
	
	return res;
}

main()
{
	cin >> n >> m >> s;
	for(int i = 1; i <= n; i++)
	{
		int x, y;
		cin >> x >> y;
		v1.pb( { x, y } );
	}
	
	//puts("");
	sort(v1.rbegin(), v1.rend());
	for(int i = m; i < n; i++)
		pq.push( v1[i].sc );
	
	int ans1 = count(v1, pq);
	
	for(int i = 0; i < n; i++)
		swap(v1[i].fr, v1[i].sc);
	
	//for(int i = 0; i < n; i++)
		//cout << v1[i].fr << " " << v1[i].sc << endl;
	//puts("");
	
	sort(v1.rbegin(), v1.rend());
		
	for(int i = s; i < n; i++)
		q.push( v1[i].sc );//, cout << v1[i].sc << endl;
		
	int ans2 = count1(v1, q);
	cout << max(ans1, ans2);
}
/*
3 1 1
5 2
4 1
6 4

7 2 3
9 8
10 6
3 5
1 7
5 7
6 3
5 4
*/

컴파일 시 표준 에러 (stderr) 메시지

school.cpp:53:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main()
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...