主题:大家一起帮我抓BUG。。。。。。
是道ACM题,原题是http://acm.pku.edu.cn/JudgeOnline/problem?id=1552
很简单的。。。。用暴力就可以了,我想优化一下,于是在输入的时候用了INSERTSORT算法来排序,后面只要确认一个数与后面数的比较就可以了,但不知道为什么就是WA
郁闷ing 请大家一起帮忙看看到底在哪儿出错了。。。。
以下是我的代码:
#include<iostream>
using namespace std;
int a[16],i,j,k,count;
int Temp;
int main()
{
while(cin>>Temp)
{
if(Temp==-1)break;
for(i=0;i<16;i++)
a[i]=0;
count=0;
i=0;
a[0]=Temp;
while(cin>>Temp)
{
i++;
if(Temp==0)break;
for(j=i-1;j>=0;j--) //排序
{
if(Temp<=a[j])a[j+1]=a[j];
else {a[j+1]=Temp;break;}
}
}
for(j=0;j<=i;j++) //查找
for(k=j+1;k<=i;k++)
{ if(2*a[j]==a[k])count++;
if(2*a[j]<a[k])break;
}
cout<<count<<endl;
}
return 0;
}
很简单的。。。。用暴力就可以了,我想优化一下,于是在输入的时候用了INSERTSORT算法来排序,后面只要确认一个数与后面数的比较就可以了,但不知道为什么就是WA
郁闷ing 请大家一起帮忙看看到底在哪儿出错了。。。。
以下是我的代码:
#include<iostream>
using namespace std;
int a[16],i,j,k,count;
int Temp;
int main()
{
while(cin>>Temp)
{
if(Temp==-1)break;
for(i=0;i<16;i++)
a[i]=0;
count=0;
i=0;
a[0]=Temp;
while(cin>>Temp)
{
i++;
if(Temp==0)break;
for(j=i-1;j>=0;j--) //排序
{
if(Temp<=a[j])a[j+1]=a[j];
else {a[j+1]=Temp;break;}
}
}
for(j=0;j<=i;j++) //查找
for(k=j+1;k<=i;k++)
{ if(2*a[j]==a[k])count++;
if(2*a[j]<a[k])break;
}
cout<<count<<endl;
}
return 0;
}