一道C++ ACM的题目 报错Runtime Error SIGSEGV
这是题目网址:http://acm.tju.edu.cn/toj/vcontest/showp9135_F.html这是代码:#include<iostream>#inc...
这是题目网址:http://acm.tju.edu.cn/toj/vcontest/showp9135_F.html
这是代码:
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int N[4444],M[166666];
int n1,n2,n=0;
cin>>n1>>n2;
for(int n=0;n<n1;n++)cin>>N[n];
for(int m=0;m<n2;m++)cin>>M[m];
for(int i=1;i<n1;i++)
{
for(int j=0;j<i;j++)
{
if(N[i]<N[j])
{
int temp=N[i];
N[i]=N[j];
N[j]=temp;
}
}
}
for(int i=0;i<n2;i++)
{
int low=0,high=n2-1;
while(high>=low)
{
int mid=(low+high)/2;
if(M[i]<N[mid])high=mid-1;
else if(M[i]==N[mid]){n+=1;break;}
else if(M[i]>N[mid])low=mid+1;
}
}
cout<<n<<endl;
return 0;
}
为什么会不对 求解 展开
这是代码:
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
int N[4444],M[166666];
int n1,n2,n=0;
cin>>n1>>n2;
for(int n=0;n<n1;n++)cin>>N[n];
for(int m=0;m<n2;m++)cin>>M[m];
for(int i=1;i<n1;i++)
{
for(int j=0;j<i;j++)
{
if(N[i]<N[j])
{
int temp=N[i];
N[i]=N[j];
N[j]=temp;
}
}
}
for(int i=0;i<n2;i++)
{
int low=0,high=n2-1;
while(high>=low)
{
int mid=(low+high)/2;
if(M[i]<N[mid])high=mid-1;
else if(M[i]==N[mid]){n+=1;break;}
else if(M[i]>N[mid])low=mid+1;
}
}
cout<<n<<endl;
return 0;
}
为什么会不对 求解 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询