#13123: C++簡易參考解答


shawn2000100 (東華財金)

學校 : 國立東華大學
編號 : 57300
來源 : [27.53.168.5]
最後登入時間 :
2021-09-19 19:53:19
d123. 11063 - B2-Sequence -- UVa11063 | From: [1.164.26.95] | 發表日期 : 2017-12-12 18:25

#include <iostream>
#include <cstring>
using namespace std;

int main(){
	int count = 0;
	int input[101] = {0};
	int N;

	while(cin >> N){
		for(int i = 0; i < N; ++i)
			cin >> input[i];

		bool legal = true;
		bool repeat[20002] = {false};

		for(int i = 0; i < N && legal; ++i)
			for(int j = i; j < N; ++j){
				int sum = input[i] + input[j];

				if(repeat[sum]){
					legal = false;
					break;
				}else{
					repeat[sum] = true;
				}
			}

		cout << "Case #" << ++count << ": It is " << (legal ? "" : "not ") << "a B2-Sequence." << endl << endl;
	}

	return 0;
}
 
#15375: Re:C++簡易參考解答


hshua (hshua)

學校 : 新北市立林口高級中學
編號 : 52506
來源 : [163.20.185.250]
最後登入時間 :
2024-05-06 11:04:22
d123. 11063 - B2-Sequence -- UVa11063 | From: [125.227.237.177] | 發表日期 : 2018-10-03 09:40

#include 
#include 
using namespace std;

int main(){
	int count = 0;
	int input[101] = {0};
	int N;

	while(cin >> N){
		for(int i = 0; i < N; ++i)
			cin >> input[i];

		bool legal = true;
		bool repeat[20002] = {false};

		for(int i = 0; i < N && legal; ++i)  <----ERROR !!! (N-->N-1)
			for(int j = i; j < N; ++j){  <----ERROR !!! (i-->i+1)
				int sum = input[i] + input[j];
printf("input[i]=%d  input[j]=%d   sum=%d\n", input[i], input[j], sum);  <----TEST
				if(repeat[sum]){
					legal = false;
					break;
				}else{
					repeat[sum] = true;
				}
			}

		cout << "Case #" << ++count << ": It is " << (legal ? "" : "not ") << "a B2-Sequence." << endl << endl;
	}

	return 0;
}


這個程式可以AC,但卻是有錯誤的
例如: 
4
1 2 3 8

應該是 B2 才對!

 
#15406: Re:C++簡易參考解答


inversion (「我們所認識的可符香是個像天使的好女孩」之葉林 *Cries...)

學校 : 國立清華大學
編號 : 43537
來源 : [49.159.6.107]
最後登入時間 :
2022-05-28 19:29:12
d123. 11063 - B2-Sequence -- UVa11063 | From: [49.158.83.43] | 發表日期 : 2018-10-04 20:23

#include 
#include 
using namespace std;

int main(){
	int count = 0;
	int input[101] = {0};
	int N;

	while(cin >> N){
		for(int i = 0; i < N; ++i)
			cin >> input[i];

		bool legal = true;
		bool repeat[20002] = {false};

		for(int i = 0; i < N && legal; ++i)  N-1)
			for(int j = i; j < N; ++j){  i+1)
				int sum = input[i] + input[j];
printf("input[i]=%d  input[j]=%d   sum=%d\n", input[i], input[j], sum);  if(repeat[sum]){
					legal = false;
					break;
				}else{
					repeat[sum] = true;
				}
			}

		cout << "Case #" << ++count << ": It is " << (legal ? "" : "not ") << "a B2-Sequence." << endl << endl;
	}

	return 0;
}


這個程式可以AC,但卻是有錯誤的
例如: 
4
1 2 3 8

應該是 B2 才對!


並沒有喔。題目裡的 i 是可以等於 j 的。

因此1、2、3、8會生成出以下數字:

2、3、4、9、4、5、10、6、11、16,數字4重複了,因此不是 B2 sequence

 
ZeroJudge Forum