讨论 / 不知为何答案错误,求大神帮我一改
asdfghjkl66666 2017-09-11 23:00:31
点我顶贴 收藏 删除
#include<bits/stdc++.h>

int n,k,a[200010],t=0;

bool pd(int x)

{

for(int i=1;i<=x;i++)

{

if(x%i==0) return false;

}

return true;

}

void dfs(int l,int r)

{

int x=l,y=r,m=a[(x+y)/2];

while(x<=y)

{

while(a[x]<m)x++;

while(a[y]>m)y--;

if(x<=y)

{

int t=a[x];a[x]=a[y];a[y]=t;

x++;y--;

}

}

if(x<r)dfs(x,r);if(y>l)dfs(l,y);

}

int main()

{

scanf("%d %d",&n,&k);

for(int i=1;i<=n;i++)

scanf("%d",&a[i]);

dfs(1,n);

int sum=0;

for(int i=1;i<=n;i++)

{

if(a[i]==k)

{

sum=a[i-1]+a[i+1];

break;

}

}

if(pd(sum)) printf("%d\nY",sum);

else printf("%d\nF",sum);

return 0;

}

查看更多回复
提交回复