杭电2187
2016-04-15 23:37
190 查看
#include <iostream> #include <cstdio> #include <algorithm> using namespace std; struct node { int price,weight; }stu[1100]; bool cmp(node x,node y) { return x.price<y.price; } int main() { int C,n,m,i,num; double sum; scanf("%d",&C); while(C--) { sum=0; scanf("%d%d",&n,&m); for(i=1;i<=m;i++) { scanf("%d%d",&stu[i].price,&stu[i].weight); } sort(stu+1,stu+m+1,cmp); for(i=1;i<=m;i++) { num=stu[i].price*stu[i].weight; if(n>=num) { n-=num; sum+=stu[i].weight; } else { sum+=1.0*n/num*stu[i].weight; break; } } printf("%.2f\n",sum); } return 0; }
相关文章推荐
- 【码上杂谈】关于之前对Server上允许的最大TCP连接数理解错误的更正
- React-Native系列Android——Native与Javascript通信原理(二)
- 基础 2016.4.16
- poj 2082 Terrible Sets
- compoer安装
- 三栏布局的实现
- 【Leetcode】1.Two Sum 解题
- Leetcode题解 70. Climbing Stairs
- python 类属性
- librbd代码目录解读
- Cordova(Phonegap)在iOS端App的使用(二)---插件的创建
- Android Studio 错误 Duplicate files copied in APK META-INF/LICENSE.txt
- 探究printf
- 杭电1907
- Flume:本地文件到HDFS
- c#复制包含子目录文件夹代码
- 软件工程个人作业05
- fastDFS+nginx配置
- 4.Reverse Words in a String-Leetcode
- javascript的闭包和匿名函数