比赛 |
2012Day1 |
评测结果 |
AWAAWWWWWW |
题目名称 |
国王游戏 |
最终得分 |
30 |
用户昵称 |
lingyixiaoyao |
运行时间 |
0.009 s |
代码语言 |
C++ |
内存使用 |
0.34 MiB |
提交时间 |
2015-10-22 20:01:41 |
显示代码纯文本
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <climits>
using namespace std;
struct node
{
int xuhao;
int left,right;
};
int max1,ans=1,ans1=1;
int n;
node a[2000];
bool comp(node i,node j);
bool comp1(node i,node j);
void dfs(int i);
int main()
{
freopen("kinggame.in","r",stdin);
freopen("kinggame.out","w",stdout);
cin>>n;
for(int i=0;i<=n;i++)
{
a[i].xuhao=i;
cin>>a[i].left>>a[i].right;
}
sort(a+1,a+n+1,comp);
int p=a[n].xuhao;
/* for(int i=0;i<=n;i++)
{
cout<<a[i].left<<' '<<a[i].right<<endl;
}
*/ for(int i=0;i<n;i++)
{
ans*=a[i].left;
}
max1=ans/a[n].right;
sort(a+1,a+n+1,comp1);
for(int i=n;i>=1;i--)
{
if(a[i].xuhao==p)
{
break;
}
dfs(i);
if(ans<max1)
{
max1=ans;
}
}
cout<<max1<<endl;
return 0;
}
bool comp(node i,node j)
{
if(i.right<j.right)
{
return true;
}
else
{
return false;
}
}
bool comp1(node i,node j)
{
if(i.left<j.left)
{
return true;
}
else
{
return false;
}
}
void dfs(int i)
{
for(int j=0;j<=n;j++)
{
if(j!=i)
ans1*=a[j].left;
}
ans=ans1/a[i].right;
}