UVa 10670 - Work Reduction(水)
来源:互联网 发布:html5 输入框遮挡js 编辑:程序博客网 时间:2024/04/30 11:28
#include<cstdlib>#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>#include<set>#include<map>#include<list>#include<queue>#include<vector>#define LL long long#define UI unsigned int#define inf 0x7fffffff#define eps 1e-7#define M 105#define N 110using namespace std;int m,n,t,u,l;struct Node{ int a,b,v; char str[100]; bool operator<(const Node o)const { return v<o.v||(v==o.v&&strcmp(str,o.str)<0); }};Node node[N];void fun(int k){ int s=n; int &ans=node[k].v=0; while(s/2>=m&&(s-s/2)*node[k].a>node[k].b) { s/=2; ans+=node[k].b; } ans+=(s-m)*node[k].a;}int main(){#ifndef ONLINE_JUDGE freopen("ex.in","r",stdin);#endif int ncase=0; scanf("%d%*c",&t); while(t--) { scanf("%d%d%d%*c",&n,&m,&l); for(int i=0;i<l;++i) { scanf("%[^:]:%d,%d%*c",node[i].str,&node[i].a,&node[i].b); fun(i); } sort(node,node+l); printf("Case %d\n",++ncase); for(int i=0;i<l;++i) printf("%s %d\n",node[i].str,node[i].v); } return 0;}