我正在做一个spoj的问题,我试图做到这一点,但我总是得到TLE(时间限制过期) 的问题是Hotels。这是我的代码,请你告诉我优化它的方法。TLE酒店(spoj)
#include<stdio.h>
int main()
{
unsigned long long int a,b,i;
scanf("%llu %llu",&a,&b);
unsigned long long int arr[a];
for(i=0;i<a;i++)
{
scanf("%llu",&arr[i]);
}
unsigned long long int d;
unsigned long long int k,z=0;
for(i=0;i<a;i++)
{
d = arr[i];
for(k=i+1;k<a+1;k++)
{
if (d<b)
{
if(z<d)
z = d;
}
else
if(d==b)
{
z = d;
break;
}
else
break;
d = d + arr[k];
}
if(d==b)
break;
}
printf("%llu",z);
return 0;
}
在
此一样,如果输入5 12,这五个是2 1 3 4 5使12然后我这样做: 第i个比较12 2,然后2 + 1,则2 + 1 + 3等到5后它比较12到1,1 + 3,1 + 3 + 4 ..这样,我只采取连续和突破,当我发现等于12,否则它继续到最后。
亚太区首席技术官Matt
投票关闭。这里没有任何实质问题。作者没有做出任何努力来解释问题是什么,并假设我们可以读懂她的想法。我举起双手...... –
快速解决问题的关键在于您选择的酒店必须在输入列表中连续。 –
@jerry我已连续选择, –