做网站编辑应该注意什么,嘉兴做网站优化哪家好,微网站建设公司哪家好,财经网站建设方案正题
题目链接:https://www.luogu.org/problem/P4343 题目大意 nnn个操作每个操作加几行代码或减几行代码#xff0c;若代码积累到xxx行就自动删除所有代码并切掉一道题。
已知道切掉了kkk题#xff0c;求最大和最小的xxx 解题思路
因为xxx和切题的数量单调#xff0c;所…正题
题目链接:https://www.luogu.org/problem/P4343 题目大意
nnn个操作每个操作加几行代码或减几行代码若代码积累到xxx行就自动删除所有代码并切掉一道题。
已知道切掉了kkk题求最大和最小的xxx 解题思路
因为xxx和切题的数量单调所以可以二分答案即可。 codecodecode
#includecstdio
#includecstring
#includealgorithm
#define ll long long
using namespace std;
const ll N100010;
ll n,k,a[N],sum,maxs,l,r;
bool check(ll x)
{ll now0,z0; for(ll i1;in;i){nowa[i];nowmax(now,0ll);if(nowx) z,now0;}return (zk);
}
bool check2(ll x)
{ll now0,z0; for(ll i1;in;i){nowa[i];nowmax(now,0ll);if(nowx) z,now0;}return (zk);
}
bool checks(ll x)
{ll now0,z0; for(ll i1;in;i){nowa[i];nowmax(now,0ll);if(nowx) z,now0;}return (zk);
}
int main()
{scanf(%lld%lld,n,k);for(ll i1;in;i)scanf(%lld,a[i]),suma[i],maxsmax(maxs,sum);l1;r(1e9)*n;while(lr){ll mid(lr)/2;if(check2(mid)) rmid-1;else lmid1;}if(checks(l))printf(%lld ,l);else {printf(-1);return 0;}l1;r(1e9)*n;while(lr){ll mid(lr)/2;if(check(mid)) lmid1;else rmid-1;}if(checks(r))printf(%lld,r);else printf(-1);
}