daniel48 2013-02-22 20:10:00
点我顶贴
收藏
删除
状态: Unaccepted
测评机: Xeond[6]
得分: 40分
提交日期: 2013-2-22 19:25:00
有效耗时: 344毫秒
测试结果1: 通过本测试点|有效耗时157ms
测试结果2: 通过本测试点|有效耗时46ms
测试结果3: 通过本测试点|有效耗时47ms
测试结果4: 选手程序运行超过时限
测试结果5: 通过本测试点|有效耗时94ms
测试结果6: 选手程序运行超过时限
测试结果7: 选手程序运行超过时限
测试结果8: 选手程序运行超过时限
测试结果9: 选手程序运行超过时限
测试结果10: 选手程序运行超过时限
提交代码:
#include<iostream>
using namespace std;
int main()
{
int a,i,j,l,p=0;
bool q=false;
cin>>a;
for(i=1;i<a;i++)
{
for(j=i;j<a;j++)
{
l=l+j;
if(l==a)
{
p=j;
for(j=i;j<p;j++)
{
cout<<j<<" ";
}
cout<<p;
q=true;
l=0;
cout<<endl;
break;
}
}
l=0;
}
if(q==false)
{
cout<<"NONE"<<endl;
}
return 0;
}
#1 Sfiction@2013-02-22 20:10:00
29452
回复
删除
想法很朴素,代码没什么问题。
但是此题的N最大可能达到10^6,O(N^2)的算法必然超时。
实际上对于每个i你都可以用等差数列计算公式来看是否有对应的j,不用通过累加来判定。