C++ 代码优化:最大剩余时间问题
#include<bits/stdc++.h> using namespace std;
int n; int t[1005],p[1005];
int main() { scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d%d",&t[i],&p[i]); int l=0,r=1e9; while(l<r) { int mid=(l+r)>>1; int sum=0,res=0; for(int i=0;i<n;i++) { sum+=t[i]; if(sum>p[i]+mid) { res=max(res,sum-p[i]-mid); sum=p[i]+mid; } } res=max(res,sum-p[n-1]); if(res<=mid)r=mid; else l=mid+1; } printf("%d",r); return 0; }
代码看起来没有明显的错误,可能是数据输入格式或者题目理解方面出了问题,建议再仔细检查一下。
原文地址: https://www.cveoy.top/t/topic/ob8r 著作权归作者所有。请勿转载和采集!