题意
有n个任务,完成第i个任务需要
ai
的时间,同一时间只能做一个任务,任务提交时间不计且可以同时提交多个任务,任务提交仅在某些时间区间可以进行,区间按顺序不重合不相连,问提交完全部任务需要多长时间
思路
先计算完成所有任务的总时间,然后找到大于等于总时间的最近的可提交的时间,就是找到一个时间窗口,右端点大于等于总时间,比较左端点与总时间,取较大值
代码
#include <cstdio>
#include <algorithm>
using namespace std;
int main()
{
int n,add,a,m,f,l,r;
scanf(
"%d",&n);
add=
0;
for(
int i=
0;i<n;i++)
{
scanf(
"%d",&a);
add+=a;
}
scanf(
"%d",&m);
f=
0;
for(
int i=
0;i<m;i++)
{
scanf(
"%d%d",&l,&r);
if(r>=add&&f==
0)
{
printf(
"%d\n",max(add,l));
f=
1;
}
}
if(f==
0)
printf(
"-1\n");
return 0;
}
转载请注明原文地址: https://www.6miu.com/read-37918.html