此題可以使用一個陣列來存放所有數字相加的總和
載判斷是否有重複的數字出現
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll n;
ll flag =0;
ll nn=0;
while(cin>>n){
ll a[100000]={0};
flag=0;
nn++;
vector<ll>v;
for(ll i=0;i<n;++i){
ll t;
cin>>t;
v.push_back(t);
}
for(ll i=0;i<n;++i){
for(ll j=i;j<n;++j){
ll sum=v[i]+v[j];
if(a[sum]!=0){
flag =1;
break;
}else{
a[sum]=1;
}
}
}
if(flag==1){
cout<<"Case #"<<nn<<": It is not a B2-Sequence."<<endl;
}
else{
cout<<"Case #"<<nn<<": It is a B2-Sequence."<<endl;
}
}
}
第二種方法是使用set來判斷是否有重複之數字
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll n;
ll nn=0;
while(cin>>n){
nn++;
vector<ll>v;
set<ll>s;
ll flag =0;
for(ll i=0;i<n;++i){
ll tt;
cin>>tt;
v.push_back(tt);
}
for(ll i=0;i<n;++i){
for(ll j=i;j<n;++j){
ll temp=v[i]+v[j];
if(s.count(temp)){
flag=1;
break;
}
s.insert(temp);
}
}
if(flag!=0){
cout<<"Case #"<<nn<<": It is not a B2-Sequence."<<endl;
}
else{
cout<<"Case #"<<nn<<": It is a B2-Sequence."<<endl;
}
}
}
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up