Codeforces 813A The Contest 题解

xiaoxiao2021-02-28  105

题意

有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

最新回复(0)