UVA 11729 Commando War

来源:互联网 发布:java面试逻辑思维题目 编辑:程序博客网 时间:2024/05/15 03:07

链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2829


不摘抄题目了;

解析:

 简单贪心思想;


#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <algorithm>#define MAXN 20005#define RST(N)memset(N, 0, sizeof(N))using namespace std;typedef struct Node_ {    int b, j;}Node;Node N[MAXN];int n;int cmp(const void *a, const void *b){    Node *p1 = (Node *)a;    Node *p2 = (Node *)b;    if(p1->j != p2->j) return p2->j - p1->j;    else return p2->b - p1->b;}int max(int x, int y) { return x>y ? x:y; }int main(){    int cas = 0;    while(~scanf("%d", &n) && n) {        for(int i=0; i<n; i++) {            scanf("%d %d", &N[i].b, &N[i].j);        }        qsort(N, n, sizeof(Node), cmp);        int res = 0, cnt = 0;        for(int i=0; i<n; i++) {            cnt += N[i].b;            res = max(res, cnt+N[i].j);        }        printf("Case %d: %d\n", ++cas, res);    }    return 0;}


0 0
原创粉丝点击