#define HAVE_STRUCT_TIMESPEC
#include<bits/stdc++.h>
using namespace std;
int a[],b[],c[];
int u,v;
int remain[],least[];
pair<int,int>pc[];
vector<int>road[];
bool cmp(int a,int b){
return a>b;
}
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n,m,k;
cin>>n>>m>>k;
for(int i=;i<=n;++i){
cin>>a[i]>>b[i]>>c[i];
pc[i]={c[i],i};
}
for(int i=;i<=m;++i){
cin>>u>>v;
road[v].push_back(u);
}
int num=k;
int flag=;
for(int i=;i<=n;++i){
if(num>=a[i]){
num+=b[i];
}
else{
flag=;
}
}
if(flag){
cout<<-;
return ;
}
least[n]=a[n];//当前至少要有的士兵数量,否则就算以后全部招募且不派兵防守也无法攻下所有城堡
for(int i=n-;i;--i){
least[i]=least[i+]-b[i];
least[i]=max(a[i],least[i]);
}
for(int i=n;i;--i){
remain[i]=num-least[i+];//当前可以用来防守的士兵数量
num-=b[i];
}
int ans=;
sort(pc+,pc++n);
for(int i=;i<=n;++i){
road[i].push_back(i);
sort(road[i].begin(),road[i].end(),cmp);
}
for(int i=n;i;--i){
int x=pc[i].first,y=pc[i].second;
for(auto it:road[y]){
if(remain[it]>){
int flag=;
for(int j=it;j<=n;++j)
if(remain[j]==){
flag=;//如果后面有等于0的话,这里派兵防守,后面就不够攻打城堡了
break;
}
if(!flag){
ans+=x;
for(int j=it;j<=n;++j)
--remain[j];
}
break;
}
}
}
cout<<ans;
return ;
}

Codeforces Round #608 (Div. 2)D(贪心)的更多相关文章

  1. Codeforces Round #608 (Div. 2) 题解

    目录 Codeforces Round #608 (Div. 2) 题解 前言 A. Suits 题意 做法 程序 B. Blocks 题意 做法 程序 C. Shawarma Tent 题意 做法 ...

  2. Codeforces Round #546 (Div. 2) D 贪心 + 思维

    https://codeforces.com/contest/1136/problem/D 贪心 + 思维 题意 你面前有一个队列,加上你有n个人(n<=3e5),有m(m<=个交换法则, ...

  3. Codeforces Round #608 (Div. 2) - D. Portals(贪心)

    题意:你起初有一支军队,有$k$个士兵,现在有$n$座城堡,你若想占领第$i$座城堡,至少得有$a[i]$个士兵才能占领$($占领后士兵不会减少$)$,占领了第$i$座城堡后,你将得到$b[i]$个士 ...

  4. Codeforces Round #547 (Div. 3) F 贪心 + 离散化

    https://codeforces.com/contest/1141/problem/F2 题意 一个大小为n的数组a[],问最多有多少个不相交的区间和相等 题解 离散化用值来做,贪心选择较前的区间 ...

  5. Codeforces Round #595 (Div. 3)D1D2 贪心 STL

    一道用STL的贪心,正好可以用来学习使用STL库 题目大意:给出n条可以内含,相交,分离的线段,如果重叠条数超过k次则为坏点,n,k<2e5 所以我们贪心的想我们从左往右遍历,如果重合部分条数超 ...

  6. Codeforces Round #554 (Div. 2) D 贪心 + 记忆化搜索

    https://codeforces.com/contest/1152/problem/D 题意 给你一个n代表合法括号序列的长度一半,一颗有所有合法括号序列构成的字典树上,选择最大的边集,边集的边没 ...

  7. 【cf补题记录】Codeforces Round #608 (Div. 2)

    比赛传送门 再次改下写博客的格式,以锻炼自己码字能力 A. Suits 题意:有四种材料,第一套西装需要 \(a\).\(d\) 各一件,卖 \(e\) 块:第二套西装需要 \(b\).\(c\).\ ...

  8. Codeforces Round #303 (Div. 2) D 贪心

    D. Queue time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...

  9. Codeforces Round #545 (Div. 2) D 贪心 + kmp

    https://codeforces.com/contest/1138/problem/D 题意 两个01串s和t,s中字符能相互交换,问最多能得到多少个(可交叉)的t 题解 即将s中的01塞进t中, ...

随机推荐

  1. update(十)

    Vue 的 _update 是实例的一个私有方法,它被调用的时机有 2 个,一个是首次渲染,一个是数据更新的时候:由于我们这一章节只分析首次渲染部分,数据更新部分会在之后分析响应式原理的时候涉及._u ...

  2. 让Surface Shader不受光照的明暗影响

    直接上码 Shader "Custom/3DVideo" { Properties { _Color (,,,) _MainTex ("Albedo (RGB)" ...

  3. webscarab

    1.功能 WebScarab是一个用来分析使用HTTP和HTTPS协议的应用程序框架.其原理很简单,WebScarab可以记录它检测到的会话内容(请求和应答),并允许使用者可以通过多种形式来查看记录. ...

  4. lamda表达式的两种写法

    public class Test{ public synchronized void test1(){ System.out.println("test1 start........... ...

  5. Paper: A novel visibility graph transformation of time series into weighted networks

    1. Convert time series into weighted networks. 2. link prediction is used to evaluate the performanc ...

  6. PHP multipart/form-data 远程DOS漏洞

    import sys import urllib,urllib2 import datetime from optparse import OptionParser def http_proxy(pr ...

  7. python3练习100题——008

    今天第二道,做了明天就可以休息一下- 原题链接:http://www.runoob.com/python/python-exercise-example8.html 题目:输出 9*9 乘法口诀表. ...

  8. python3.0练习100题——001

    自学python3中,现在开始每天在python2.71 100例中做一道题,用python3实现,并写下一些思考-加油(ง •̀灬•́)ง 题目网站(http://www.runoob.com/py ...

  9. 【sql】sql必知必会_01

    数据: /* Navicat Premium Data Transfer Source Server : localhost_3306 Source Server Type : MySQL Sourc ...

  10. Web API和Web Service

    首先,Web API是由Web Service演变而来,它们两者关系就是所有Web Service都是API,但并非所有API都是Web Service.其次,两者都有利于信息的传输,但Web API ...