Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #pragma comment (linker,"/STACK:256000000")
- #include <iostream>
- #include <stdio.h>
- #include <algorithm>
- #include <set>
- #include <map>
- #include <queue>
- #include <stack>
- #include <deque>
- #include <vector>
- #include <cassert>
- #include <string>
- using namespace std;
- #define INF 1000000000
- #define lint long long
- #define pb push_back
- #define MOD 1000000007
- #define mp make_pair
- pair <int, int> a[4005];
- vector <int> b;
- int n;
- lint ans;
- int xx, yy;
- void solve(int s) {
- b.clear();
- for (int i = 1; i <= n; ++i) {
- if (a[i].first >= s) {
- if (a[i].second >= s) {
- if (a[i].first >= a[i].second) {
- b.pb(a[i].first);
- }
- else b.pb(a[i].second);
- }
- else b.pb(a[i].second);
- }
- else if (a[i].second >= s) {
- b.pb(a[i].first);
- }
- }
- sort(b.begin(), b.end());
- if (!b.empty()) {
- for (int i = b.size() - 1; i >= 0; --i) {
- lint cur = s * 1ll * ((int)b.size() - i) * 1ll * b[i];
- if (cur > ans) {
- xx = s;
- yy = b[i];
- ans = cur;
- }
- }
- }
- }
- int main() {
- scanf("%d", &n);
- for (int i = 1; i <= n; ++i) {
- scanf("%d %d", &a[i].first, &a[i].second);
- }
- for (int i = 1; i <= n; ++i) {
- solve(a[i].first);
- solve(a[i].second);
- }
- cout << ans << endl << xx << " " << yy;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement