1. 程式人生 > >貪心 No Time for Dragons Gym - 101149B

貪心 No Time for Dragons Gym - 101149B

nbsp sin span efi cstring += space main out

國王要殺死n條龍,殺死每條龍需要a人,會戰死b人,問殺死n條龍至少需要多少人。

因為殺死每條龍需要的人是一定的且戰死的人是一定的,所以先殺戰死的人最少的龍。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 200005
using namespace std;
typedef struct
{
    int x,y;
}Point;
Point a[maxn];
int cmp(Point b,Point c)
{
    return
b.y> c.y; } int main() { long long ans=0; int n; cin>>n; for(int i=1;i<=n;i++) { int x1,y1; cin>>x1>>y1; a[i].x=x1,a[i].y=x1-y1; } sort(a+1,a+n+1,cmp); ans+=a[1].x; for(int i=2;i<=n;i++) { if(a[i].x>a[i-1
].y) ans+=(a[i].x-a[i-1].y); else a[i].y+=(a[i-1].y-a[i].x); } cout<<ans<<endl; }

貪心 No Time for Dragons Gym - 101149B