d123. 11063 - B2-Sequence

此題可以使用一個陣列來存放所有數字相加的總和
載判斷是否有重複的數字出現

#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;
		}
	}
}