

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
Đáp án:
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e6+10;
int n,k=0,x,a[maxn],s,p,l=1,r=0;
bool kt(int x)
{
long long sum=0;
for(int i=1;i<=x;i++)
sum=sum+ a[i];
if(sum > k)
return false;
for(int i=x+1;i<=n;i++)
{
sum = sum - a[i-x] + a[i];
if(sum > k)
return false;
}
return true;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> k;
for(int i=1;i<=n;i++)
cin >> a[i];
r = n;
p = -1;
while(l <= r)
{
int m = (l+r)/2;
if(kt(m))
{
p = m;
l = m+1;
}
else
r = m-1;
}
cout << p;
}
Giải thích các bước giải:
sử dụng mảng cộng dồn nhé
Hãy giúp mọi người biết câu trả lời này thế nào?

#include<bits/stdc++.h>
using namespace std;
long long n,a[100005],k,tong=0;
int main()
{
cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int m=n;m>=1;m--)
{
bool ok=true;
for(int i=1;i<=n-m+1;i++)
{
tong=0;
for(int j=i;j<=i+m-1;j++)tong+=a[j];
if(tong>k)
{
ok=false;
break;
}
}
if(ok)
{
cout<<m;
return 0;
}
}
cout<<-1;
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?

Bảng tin
0
96
0
:0
43
2581
22
const int maxn=1e6+10; lớp 8 đã học đâu?
0
96
0
roi ma
0
96
0
hoc lau roi a
43
2581
22
à thế mình chưa học