给定N个正整数和一个正整数P,要求你从中找出两个数字a,b使得a + b = p;
input:第一行两个数字n,p(n<=10^5;p,n个整数<2^32);第二行n个数字;
output:若能找到这两个数字输出Yes,否则输出No.。
#include <stdio.h>
int main()
{
int a[100005],p,i,j,n,k=0;
scanf("%d%d",&n,&p);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
if(a[i]+a[j]==p)
k=1;
if(k==1)
{
printf("Yes");
break;
}
}
if(k==1) break;
}
if(k==0) printf("No");
return 0;
}
我这样写ac不了。哪里错了??是不是那个p<2^32错了。。
input:第一行两个数字n,p(n<=10^5;p,n个整数<2^32);第二行n个数字;
output:若能找到这两个数字输出Yes,否则输出No.。
#include <stdio.h>
int main()
{
int a[100005],p,i,j,n,k=0;
scanf("%d%d",&n,&p);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
for(i=1;i<=n;i++)
{
for(j=i+1;j<=n;j++)
{
if(a[i]+a[j]==p)
k=1;
if(k==1)
{
printf("Yes");
break;
}
}
if(k==1) break;
}
if(k==0) printf("No");
return 0;
}
我这样写ac不了。哪里错了??是不是那个p<2^32错了。。