C++ 无法找出下面程序中的错误
我陷入了一个问题 对于给定的测试用例,我使用二进制搜索解决了这个问题 输入: 六, -45 22 42-16 -41-27 56 30 -36 53-37 77 -36 30-75-46 26-38-10 62 -32-54-6 45 实际产出:3 预期产出:5C++ 无法找出下面程序中的错误,c++,binary-search,C++,Binary Search,我陷入了一个问题 对于给定的测试用例,我使用二进制搜索解决了这个问题 输入: 六, -45 22 42-16 -41-27 56 30 -36 53-37 77 -36 30-75-46 26-38-10 62 -32-54-6 45 实际产出:3 预期产出:5 #include<bits/stdc++.h> using namespace std; int a[4100],b[4100],c[4100],d[4100]; vector <int> s1,s2; int
#include<bits/stdc++.h>
using namespace std;
int a[4100],b[4100],c[4100],d[4100];
vector <int> s1,s2;
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i]>>b[i]>>c[i]>>d[i];
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
s1.push_back(a[i]+b[j]);
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
s2.push_back((c[i]+d[j]));
}
}
sort(s1.begin(),s1.end());
sort(s2.begin(),s2.end());
int ans = 0;
for(int v: s1){
vector <int> ::iterator x = lower_bound(s2.begin(),s2.end(),v);
vector <int> ::iterator y = upper_bound(s2.begin(),s2.end(),v);
ans+=y-x;
}
cout<<ans<<endl;;
}
#包括
使用名称空间std;
INTA[4100],b[4100],c[4100],d[4100];
向量s1,s2;
int main(){
int n;
cin>>n;
对于(int i=0;i>a[i]>>b[i]>>c[i]>>d[i];
}
对于(int i=0;i很抱歉,但是您的算法没有计算出所需的值。例如,给定输入1
,它会生成1
的答案,这是不正确的,因为1+1+1
不等于0