1 条题解
-
0
#include<cstdio> #include<queue> #define MAXN 10005 using namespace std; int n, t, d[MAXN]; priority_queue<int, vector<int>, greater<int> > q; bool check(int size) { for(int i = 1; i <= size; i++) q.push(d[i]); int i = size, time; while(!q.empty()) { time = q.top(); q.pop(); if(++i <= n) q.push(d[i] + time); } return time <= t; } int main() { scanf("%d%d", &n, &t); for(int i = 1; i <= n; i++) scanf("%d", &d[i]); int l = 0, r = n, m; while(l < r) { m = (l + r) >> 1; if(check(m)) r = m; else l = m + 1; } printf("%d", l); return 0; }
- 1
信息
- ID
- 2544
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 4
- 标签
- 递交数
- 3
- 已通过
- 2
- 上传者