Submission
Status:
PPPTTTPTTP
Score: 50
User: Jokul
Problemset: ความลึก
Language: c
Time: 1.105 second
Submitted On: 2025-04-15 15:33:13
#include <stdio.h>
int main() {
int n,q,maxd=0,maxl=0,save,ans;
scanf("%d %d", &n, &q);
int d[n],l[n],ship[q],depth[n+1],suml=0;
for(int i=0;i<=n;i++)
{
depth[i]=0;
}
for(int i=0;i<n;i++)
{
scanf("%d",&d[i]);
depth[i+1]=depth[i]+d[i];
scanf("%d",&l[i]);
if(depth[i+1]>=maxd)
{
maxd=depth[i];
}
}
int wide[maxd+1];
wide[0]=1000000001;
for(int i=1;i<=maxd;i++)
{
maxl=0;
for(int j=0;j<n;j++)
{
if(depth[j+1]>=i)
{
suml=suml+l[j];
if(maxl<=suml)
{
maxl=suml;
}
}
else if(depth[j+1]<i)
{
suml=0;
}
}
wide[i]=maxl;
}
ans=maxd;
for(int i=0;i<q;i++)
{
scanf("%d",&ship[i]);
}
for(int i=0;i<q;i++){
for(int j=maxd;j>0;j--)
{
if(ship[i]>wide[1])
{
ans=0;
}
else if(ship[i]<=wide[j])
{
ans=j;
break;
}
}
printf("%d\n",ans);
}
}