Codeforces_729_C
http://codeforces.com/problemset/problem/729/C
二分找最小容量,然后找符合的最小花费。
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std; int n,k,s,t,c[],v[],g[]; bool f(int x)
{
int tt = ;
for(int i = ;i <= k+;i++)
{
int temp = g[i]-g[i-];
if(x < temp) return ;
if(x >= temp*) tt += temp;
else tt += *temp-x;
}
if(tt > t) return ;
return ;
}
int main()
{
scanf("%d%d%d%d",&n,&k,&s,&t);
for(int i = ;i <= n;i++) scanf("%d%d",&c[i],&v[i]);
for(int i = ;i <= k;i++) scanf("%d",&g[i]);
sort(g+,g++k);
g[k+] = s;
g[] = ;
int l = ,r = 1e9+;
while(l < r)
{
int mid = (l+r)/;
if(f(mid)) r = mid;
else l = mid+;
}
int ans = 1e9+;
for(int i = ;i <= n;i++)
{
if(v[i] >= l) ans = min(ans,c[i]);
}
if(ans == 1e9+) printf("-1\n");
else printf("%d\n",ans);
return ;
}
Codeforces_729_C的更多相关文章
随机推荐
- docker仓库和dockerfile
通过Dockerfile创建镜像 Dockerfile • Dockerfile语法格式 – FROM:基础镜像 – MAINTAINER:镜像创建者信息 – COPY:复制文件到镜像(所有文 ...
- PHP计算每月几周,每周的开始结束日期
PHP计算每月几周,每周的开始结束日期 因为项目中需要一个每周工作计算的功能,具体日期的算法是,把每月拆分成几个周,最后一个星期这个月份的天数不够就补上下个月的. 列如今天8月27星期一,这个月有31 ...
- C#支付宝支付接口H5版(手机网页支付)
接口官方文档 https://docs.open.alipay.com/203/107090/ 首先在Nuget 安装 Alipay /// <summary> /// 支 ...
- C# Datatable 添加列
DataTable dt = new DataTable("Datas"); DataColumn dc = null; //dt新增列 dc=dt.Columns.Add(&qu ...
- hadoop 基础
common 一组分布式文件系统和通用I/O的组件与接口(序列化.java RPC和持久化数据结构) Avro 一种支持高效.跨语言的RPC以及永久存储数据的序列化系统 MapReduce 分布式数据 ...
- Gitlab应用——系统管理
查看linux系统信息 查看日志 创建账号 选择regular,这是一个普通账号,点击“create user”账号创建完成 点击“User”,然后点击“New user”.使 ...
- kubernetes concepts -- Termination Of Pod
Pods are the smallest deployable units of computing that can be created and managed in Kubernetes. W ...
- python小知识点总结
小知识点总结 1.python2和python3的区别 python2 python3 默认编码 ascii utf-8 input() raw_input() input() print 可以不 ...
- pymysql 增
1.重点:数据库插入数据需要进行---------事物提交 其它:事物回滚 import pymysql # 注册用户 print("=========注册用户===========&quo ...
- 异数OS 星星之火(三)--异数OS-织梦师云 微服务编写入门
. 异数OS 星星之火(三)–异数OS-织梦师云 微服务编写入门 本文来自异数OS社区 github: https://github.com/yds086/HereticOS 异数OS社区QQ群: 6 ...