#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct node
{
int a;
double b;
};
vector<node> ns;
bool cmp(node n1, node n2)
{
return n1.b > n2.b;
}
int main()
{
int n, m;
while(scanf("%d %d", &n, &m))
{
if(m == 0 && n == 0)
{
break;
}
ns.clear();
while(m > 0)
{
node n;
cin>>n.a>>n.b;
ns.push_back(n);
m --;
}
sort(ns.begin(), ns.end(), cmp);
double rate = 1.0;
for(int i = 0; i < ns.size(); i ++)
{
if(n >= ns[ i ].a)
{
rate *= (1 - ns[ i ].b);
n -= ns[ i ].a;
}
}
rate = 1 - rate;
rate *= 100;
printf("%.1lf%%\n", rate);
}
return 0;
}
杭电ACM1203(贪心法)
最新推荐文章于 2019-03-17 19:21:10 发布