洛谷 P2695 骑士的工作

                      洛谷 P2695 骑士的工作

 

题目背景

你作为一个村的村长,保卫村庄是理所当然的了.今天,村庄里来了一只恶龙,他有n个头,恶龙到处杀人放火。你着急了。不过天无绝人之路,现在来了一个骑士团。里面有m位成员(往下看)

题目描述

每个人都可以砍掉一个大小不超过(<=)z的头,要money个金币,求最小花费。

输入输出格式

输入格式:

 

第一行两个整数 n m

下接n行,一个整数 表示n个头的大小。

下接m行,每个人可以砍的头大小或金币(金币==头的大小)。

 

输出格式:

 

一个整数,最小花费。如果无解,输出“you died!”

 

输入输出样例

输入样例#1: 复制
2 3
5 
4
7 
8
4
输出样例#1: 复制
11

说明

1<=n,m<=20000

思路:排序+枚举               难度:普及/提高-

 

#include<algorithm>
#include<cstdio>
using namespace std;
int n, m, k = 1;
int sum, tot;
int a[20005], b[20005];

int main() {
    scanf("%d%d", &n, &m);
    if(n > m) {
        printf("you died!");
        return 0;
    }
    for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
    for(int i = 1; i <= m; i++) scanf("%d", &b[i]);
    sort(a+1, a+n+1);
    sort(b+1, b+m+1);
    for(int i = 1; i <= n; i++)
        for(int j = k; j <= m; j++)
            if(a[i] <= b[j]) {
                sum += b[j];
                k = j+1;
                tot++;
                break;
            }
    if(tot == n) printf("%d", sum);
    else printf("you died!");
    return 0;
}

 

posted @ 2018-03-22 21:02  落云小师妹  阅读(118)  评论(0编辑  收藏  举报