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;}

原创粉丝点击