Layer Cake
time limit per test

6 seconds

memory limit per test

512 megabytes

input

standard input

output

standard output

Dasha decided to bake a big and tasty layer cake. In order to do that she went shopping and bought n rectangular cake layers. The length and the width of the i-th cake layer wereai and bi respectively, while the height of each cake layer was equal to one.

From a cooking book Dasha learned that a cake must have a form of a rectangular parallelepiped constructed from cake layers of the same sizes.

Dasha decided to bake the biggest possible cake from the bought cake layers (possibly, using only some of them). It means that she wants the volume of the cake to be as big as possible. To reach this goal, Dasha can cut rectangular pieces out of the bought cake layers. She always cuts cake layers in such a way that cutting lines are parallel to the edges of that cake layer. Dasha isn't very good at geometry, so after cutting out a piece from the original cake layer, she throws away the remaining part of it. Also she can rotate a cake layer in the horizontal plane (swap its width and length).

Dasha wants her cake to be constructed as a stack of cake layers of the same sizes. Each layer of the resulting cake should be made out of only one cake layer (the original one or cut out from the original cake layer).

Help Dasha to calculate the maximum possible volume of the cake she can bake using given cake layers.

Input

The first line contains an integer n (1 ≤ n ≤ 4000) — the number of cake layers that Dasha can use.

Each of the following n lines contains two integer numbers ai and bi (1 ≤ ai, bi ≤ 106) — the length and the width of i-th cake layer respectively.

Output

The first line of the output should contain the maximum volume of cake that can be baked using given layers.

The second line of the output should contain the length and the width of the resulting cake. If there are many solutions with maximum possible volume, print any of them.

Sample test(s)
input
5
5 12
1 1
4 6
6 4
4 6
output
96
6 4
input
2
100001 900000
900001 100000
output
180000000000
900000 100000
Note

In the first example Dasha doesn't use the second cake layer. She cuts 4 × 6 rectangle from the first cake layer and she uses other cake layers as is.

In the second example Dasha cuts off slightly from the both cake layers.

题意:在给定蛋糕数量和长宽信息时,任取面包数量,让面包堆积成平行六边形即每一个面包的长和宽都相等(多了可以裁,求体积的最大值,每个面包的高度是1.

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm> using namespace std; #define maxn 4010 struct node
{
int x, y;
}P[maxn]; int X[maxn], Y[maxn]; int cmp(node a, node b)
{
if(a.x == b.x)
return a.y < b.y;
return a.x > b.x;
} int main()
{
int n, x, y, p, q; while(scanf("%d", &n) != EOF)
{
long long ans, sum = 0;
for(int i = 0; i < n; i++)
{
scanf("%d%d", &x, &y);
P[i].x = min(x, y);
P[i].y = max(x, y);
}
sort(P, P+n, cmp);
for(int i = 0; i < n; i++)
X[i] = P[i].x, Y[i] = P[i].y;
for(int i = 0; i < n; i++)
{
sort(Y, Y+i+1);
for(int j = 0; j <= i; j++)
{
ans = (long long)X[i] * Y[j] * (i-j+1);
if(ans > sum)
{
sum = ans;
p = X[i];
q = Y[j];
}
}
}
printf("%I64d\n%d %d\n", sum, p, q);
}
return 0;
}

  

最新文章

  1. 从SQL的视角用powershell
  2. 简单高效快捷的百度地图demo
  3. linux下svn服务器安装配置与启动
  4. 【229】Raster Calculator - 栅格计算器
  5. CentOS 6.4安装配置LNMP服务器(Nginx+PHP+MySQL)
  6. synchronized的使用方法
  7. -tableView: cellForRowAtIndexPath:方法不执行问题
  8. awesome-nlp
  9. Android IOS WebRTC 音视频开发总结(八)-- ios上移植webRTCDemo
  10. iOS-NSOperation多线程
  11. CentOS下安装Nginx服务器
  12. 201521123051《java程序设计》 第五周学习总结
  13. nodejs 从部署到域名访问
  14. html-背景图片
  15. Kubernetes-v1.12.0基于kubeadm部署
  16. python---django中序列化
  17. Linux常用的一些基础命令
  18. Codeforces Round #350 (Div. 2) D1. Magic Powder - 1 二分
  19. Android实现图片轮显效果——自定义ViewPager控件
  20. Flutter视图基础简介--Widget、Element、RenderObject

热门文章

  1. 决解nginx代理的django项目的admin站点无法访问,和没样式的问题。
  2. GCC 编译参数
  3. 《剑指offer》面试题25 二叉树中和为某一值的路径 Java版
  4. 【暑假培训1】test1
  5. PHP之简单工厂模式(二)
  6. Windows 环境下安装redis 及其PHP Redis扩展
  7. js实现完整轮播
  8. Api接口管理工具推荐
  9. OC(构造函数,分类等知识总结)
  10. 基于numpy的绘图