【烤机向】美国大选有没有打成269票平局的情况?

  美国大选到最后阶段,往往都是两个人的角逐,比如上一次的希拉里和川普。大选的规则是只要一个候选人在一个州获胜,那么这个州的所有选票就划归在本州获胜的候选人。从上图可以看出,每个州的选票数量是不一样的,如加利福尼亚州有多达55张选票,最少的州只有3张选票,所有51个选区的总票数是538。

  那么问题来了,有没有两个候选人均获得269票打成平局的情况?在数据结构上讲,该问题的复杂度是O(2^51),非常恐怖的计算量,而且经证明该复杂度是无法优化的。

  下面给出C++求解代码:

#include<iostream>
using namespace std;

int main(){
	int a[51] = { 55, 34, 31, 27, 21, 21, 20, 17, 15, 15, 15, 13, 12, 11, 11, 11, 11, 10, 10, 10, 10, 9, 9, 9, 8, 8, 7, 7, 7, 7, 6, 6, 6, 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3 };
	int sum_ = 0, _sum = 0;
	for (int i = 0; i < 51; i++){
		sum_ += a[i];
		if (sum_ >= 269){ cout << i << endl; break; }
	}

	for (int j = 50; j >= 0; j--){
		_sum += a[j];
		if (_sum >= 269){ cout << j << endl; break; }
	}

	for (int i_01 = 0; i_01 < 51; i_01++){
		int sum = 0;
		sum += a[i_01];
		for (int i_02 = 0; i_02 < 51; i_02++){
			if (i_02 == i_01) continue;
			sum += a[i_02];
			for (int i_03 = 0; i_03 < 51; i_03++){
				if (i_03 == i_02 || i_03 == i_01) continue;
				sum += a[i_03];
				for (int i_04 = 0; i_04 < 51; i_04++){
					if (i_04 == i_03 || i_04 == i_02 || i_04 == i_01) continue;
					sum += a[i_04];
					for (int i_05 = 0; i_05 < 51; i_05++){
						if (i_05 == i_04 || i_05 == i_03 || i_05 == i_02 || i_05 == i_01) continue;
						sum += a[i_05];
						for (int i_06 = 0; i_06 < 51; i_06++){
							if (i_06 == i_05 || i_06 == i_04 || i_06 == i_03 || i_06 == i_02 || i_06 == i_01) continue;
							sum += a[i_06];
							for (int i_07 = 0; i_07 < 51; i_07++){
								if (i_07 == i_06 || i_07 == i_05 || i_07 == i_04 || i_07 == i_03 || i_07 == i_02 || i_07 == i_01) continue;
								sum += a[i_07];
								for (int i_08 = 0; i_08 < 51; i_08++){
									if (i_08 == i_07 || i_08 == i_06 || i_08 == i_05 || i_08 == i_04 || i_08 == i_03 || i_08 == i_02 || i_08 == i_01) continue;
									sum += a[i_08];
									for (int i_09 = 0; i_09 < 51; i_09++){
										if (i_09 == i_08 || i_09 == i_07 || i_09 == i_06 || i_09 == i_05 || i_09 == i_04 || i_09 == i_03 || i_09 == i_02 || i_09 == i_01) continue;
										sum += a[i_09];
										for (int i_10 = 0; i_10 < 51; i_10++){
											if (i_10 == i_09 || i_10 == i_08 || i_10 == i_07 || i_10 == i_06 || i_10 == i_05 || i_10 == i_04 || i_10 == i_03 || i_10 == i_02 || i_10 == i_01) continue;
											sum += a[i_10];
											for (int i_11 = 0; i_11 < 51; i_11++){
												if (i_11 == i_10 || i_11 == i_09 || i_11 == i_08 || i_11 == i_07 || i_11 == i_06 || i_11 == i_05 || i_11 == i_04 || i_11 == i_03 || i_11 == i_02 || i_11 == i_01) continue;
												sum += a[i_11];
												for (int i_12 = 0; i_12 < 51; i_12++){
													if (i_12 == i_11 || i_12 == i_10 || i_12 == i_09 || i_12 == i_08 || i_12 == i_07 || i_12 == i_06 || i_12 == i_05 || i_12 == i_04 || i_12 == i_03 || i_12 == i_02 || i_12 == i_01) continue;
													sum += a[i_12];
													for (int i_13 = 0; i_13 < 51; i_13++){
														if (i_13 == i_12 || i_13 == i_11 || i_13 == i_10 || i_13 == i_09 || i_13 == i_08 || i_13 == i_07 || i_13 == i_06 || i_13 == i_05 || i_13 == i_04 || i_13 == i_03 || i_13 == i_02 || i_13 == i_01) continue;
														sum += a[i_13];
														for (int i_14 = 0; i_14 < 51; i_14++){
															if (i_14 == i_13 || i_14 == i_12 || i_14 == i_11 || i_14 == i_10 || i_14 == i_09 || i_14 == i_08 || i_14 == i_07 || i_14 == i_06 || i_14 == i_05 || i_14 == i_04 || i_14 == i_03 || i_14 == i_02 || i_14 == i_01) continue;
															sum += a[i_14];
															if (sum == 269) {
																cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << endl;
																return 0;
															}
															for (int i_15 = 0; i_15 < 51; i_15++){
																if (i_15 == i_14 || i_15 == i_13 || i_15 == i_12 || i_15 == i_11 || i_15 == i_10 || i_15 == i_09 || i_15 == i_08 || i_15 == i_07 || i_15 == i_06 || i_15 == i_05 || i_15 == i_04 || i_15 == i_03 || i_15 == i_02 || i_15 == i_01) continue;
																sum += a[i_15];
																if (sum == 269) {
																	cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << endl;
																	return 0;
																}
																for (int i_16 = 0; i_16 < 51; i_16++){
																	if (i_16 == i_15 || i_16 == i_14 || i_16 == i_13 || i_16 == i_12 || i_16 == i_11 || i_16 == i_10 || i_16 == i_09 || i_16 == i_08 || i_16 == i_07 || i_16 == i_06 || i_16 == i_05 || i_16 == i_04 || i_16 == i_03 || i_16 == i_02 || i_16 == i_01) continue;
																	sum += a[i_16];
																	if (sum == 269) {
																		cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << endl;
																		return 0;
																	}
																	for (int i_17 = 0; i_17 < 51; i_17++){
																		if (i_17 == i_16 || i_17 == i_15 || i_17 == i_14 || i_17 == i_13 || i_17 == i_12 || i_17 == i_11 || i_17 == i_10 || i_17 == i_09 || i_17 == i_08 || i_17 == i_07 || i_17 == i_06 || i_17 == i_05 || i_17 == i_04 || i_17 == i_03 || i_17 == i_02 || i_17 == i_01) continue;
																		sum += a[i_17];
																		if (sum == 269) {
																			cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << endl;
																			return 0;
																		}
																		for (int i_18 = 0; i_18 < 51; i_18++){
																			if (i_18 == i_17 || i_18 == i_16 || i_18 == i_15 || i_18 == i_14 || i_18 == i_13 || i_18 == i_12 || i_18 == i_11 || i_18 == i_10 || i_18 == i_09 || i_18 == i_08 || i_18 == i_07 || i_18 == i_06 || i_18 == i_05 || i_18 == i_04 || i_18 == i_03 || i_18 == i_02 || i_18 == i_01) continue;
																			sum += a[i_18];
																			if (sum == 269) {
																				cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << endl;
																				return 0;
																			}
																			for (int i_19 = 0; i_19 < 51; i_19++){
																				if (i_19 == i_18 || i_19 == i_17 || i_19 == i_16 || i_19 == i_15 || i_19 == i_14 || i_19 == i_13 || i_19 == i_12 || i_19 == i_11 || i_19 == i_10 || i_19 == i_09 || i_19 == i_08 || i_19 == i_07 || i_19 == i_06 || i_19 == i_05 || i_19 == i_04 || i_19 == i_03 || i_19 == i_02 || i_19 == i_01) continue;
																				sum += a[i_19];
																				if (sum == 269) {
																					cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << endl;
																					return 0;
																				}
																				for (int i_20 = 0; i_20 < 51; i_20++){
																					if (i_20 == i_19 || i_20 == i_18 || i_20 == i_17 || i_20 == i_16 || i_20 == i_15 || i_20 == i_14 || i_20 == i_13 || i_20 == i_12 || i_20 == i_11 || i_20 == i_10 || i_20 == i_09 || i_20 == i_08 || i_20 == i_07 || i_20 == i_06 || i_20 == i_05 || i_20 == i_04 || i_20 == i_03 || i_20 == i_02 || i_20 == i_01) continue;
																					sum += a[i_20];
																					if (sum == 269) {
																						cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << endl;
																						return 0;
																					}
																					for (int i_21 = 0; i_21 < 51; i_21++){
																						if (i_21 == i_20 || i_21 == i_19 || i_21 == i_18 || i_21 == i_17 || i_21 == i_16 || i_21 == i_15 || i_21 == i_14 || i_21 == i_13 || i_21 == i_12 || i_21 == i_11 || i_21 == i_10 || i_21 == i_09 || i_21 == i_08 || i_21 == i_07 || i_21 == i_06 || i_21 == i_05 || i_21 == i_04 || i_21 == i_03 || i_21 == i_02 || i_21 == i_01) continue;
																						sum += a[i_21];
																						if (sum == 269) {
																							cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << endl;
																							return 0;
																						}
																						for (int i_22 = 0; i_22 < 51; i_22++){
																							if (i_22 == i_21 || i_22 == i_20 || i_22 == i_19 || i_22 == i_18 || i_22 == i_17 || i_22 == i_16 || i_22 == i_15 || i_22 == i_14 || i_22 == i_13 || i_22 == i_12 || i_22 == i_11 || i_22 == i_10 || i_22 == i_09 || i_22 == i_08 || i_22 == i_07 || i_22 == i_06 || i_22 == i_05 || i_22 == i_04 || i_22 == i_03 || i_22 == i_02 || i_22 == i_01) continue;
																							sum += a[i_22];
																							if (sum == 269) {
																								cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << endl;
																								return 0;
																							}
																							for (int i_23 = 0; i_23 < 51; i_23++){
																								if (i_23 == i_22 || i_23 == i_21 || i_23 == i_20 || i_23 == i_19 || i_23 == i_18 || i_23 == i_17 || i_23 == i_16 || i_23 == i_15 || i_23 == i_14 || i_23 == i_13 || i_23 == i_12 || i_23 == i_11 || i_23 == i_10 || i_23 == i_09 || i_23 == i_08 || i_23 == i_07 || i_23 == i_06 || i_23 == i_05 || i_23 == i_04 || i_23 == i_03 || i_23 == i_02 || i_23 == i_01) continue;
																								sum += a[i_23];
																								if (sum == 269) {
																									cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << endl;
																									return 0;
																								}
																								for (int i_24 = 0; i_24 < 51; i_24++){
																									if (i_24 == i_23 || i_24 == i_22 || i_24 == i_21 || i_24 == i_20 || i_24 == i_19 || i_24 == i_18 || i_24 == i_17 || i_24 == i_16 || i_24 == i_15 || i_24 == i_14 || i_24 == i_13 || i_24 == i_12 || i_24 == i_11 || i_24 == i_10 || i_24 == i_09 || i_24 == i_08 || i_24 == i_07 || i_24 == i_06 || i_24 == i_05 || i_24 == i_04 || i_24 == i_03 || i_24 == i_02 || i_24 == i_01) continue;
																									sum += a[i_24];
																									if (sum == 269) {
																										cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << endl;
																										return 0;
																									}
																									for (int i_25 = 0; i_25 < 51; i_25++){
																										if (i_25 == i_24 || i_25 == i_23 || i_25 == i_22 || i_25 == i_21 || i_25 == i_20 || i_25 == i_19 || i_25 == i_18 || i_25 == i_17 || i_25 == i_16 || i_25 == i_15 || i_25 == i_14 || i_25 == i_13 || i_25 == i_12 || i_25 == i_11 || i_25 == i_10 || i_25 == i_09 || i_25 == i_08 || i_25 == i_07 || i_25 == i_06 || i_25 == i_05 || i_25 == i_04 || i_25 == i_03 || i_25 == i_02 || i_25 == i_01) continue;
																										sum += a[i_25];
																										if (sum == 269) {
																											cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << endl;
																											return 0;
																										}
																										for (int i_26 = 0; i_26 < 51; i_26++){
																											if (i_26 == i_25 || i_26 == i_24 || i_26 == i_23 || i_26 == i_22 || i_26 == i_21 || i_26 == i_20 || i_26 == i_19 || i_26 == i_18 || i_26 == i_17 || i_26 == i_16 || i_26 == i_15 || i_26 == i_14 || i_26 == i_13 || i_26 == i_12 || i_26 == i_11 || i_26 == i_10 || i_26 == i_09 || i_26 == i_08 || i_26 == i_07 || i_26 == i_06 || i_26 == i_05 || i_26 == i_04 || i_26 == i_03 || i_26 == i_02 || i_26 == i_01) continue;
																											sum += a[i_26];
																											if (sum == 269) {
																												cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << endl;
																												return 0;
																											}
																											for (int i_27 = 0; i_27 < 51; i_27++){
																												if (i_27 == i_26 || i_27 == i_25 || i_27 == i_24 || i_27 == i_23 || i_27 == i_22 || i_27 == i_21 || i_27 == i_20 || i_27 == i_19 || i_27 == i_18 || i_27 == i_17 || i_27 == i_16 || i_27 == i_15 || i_27 == i_14 || i_27 == i_13 || i_27 == i_12 || i_27 == i_11 || i_27 == i_10 || i_27 == i_09 || i_27 == i_08 || i_27 == i_07 || i_27 == i_06 || i_27 == i_05 || i_27 == i_04 || i_27 == i_03 || i_27 == i_02 || i_27 == i_01) continue;
																												sum += a[i_27];
																												if (sum == 269) {
																													cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << endl;
																													return 0;
																												}
																												for (int i_28 = 0; i_28 < 51; i_28++){
																													if (i_28 == i_27 || i_28 == i_26 || i_28 == i_25 || i_28 == i_24 || i_28 == i_23 || i_28 == i_22 || i_28 == i_21 || i_28 == i_20 || i_28 == i_19 || i_28 == i_18 || i_28 == i_17 || i_28 == i_16 || i_28 == i_15 || i_28 == i_14 || i_28 == i_13 || i_28 == i_12 || i_28 == i_11 || i_28 == i_10 || i_28 == i_09 || i_28 == i_08 || i_28 == i_07 || i_28 == i_06 || i_28 == i_05 || i_28 == i_04 || i_28 == i_03 || i_28 == i_02 || i_28 == i_01) continue;
																													sum += a[i_28];
																													if (sum == 269) {
																														cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << endl;
																														return 0;
																													}
																													for (int i_29 = 0; i_29 < 51; i_29++){
																														if (i_29 == i_28 || i_29 == i_27 || i_29 == i_26 || i_29 == i_25 || i_29 == i_24 || i_29 == i_23 || i_29 == i_22 || i_29 == i_21 || i_29 == i_20 || i_29 == i_19 || i_29 == i_18 || i_29 == i_17 || i_29 == i_16 || i_29 == i_15 || i_29 == i_14 || i_29 == i_13 || i_29 == i_12 || i_29 == i_11 || i_29 == i_10 || i_29 == i_09 || i_29 == i_08 || i_29 == i_07 || i_29 == i_06 || i_29 == i_05 || i_29 == i_04 || i_29 == i_03 || i_29 == i_02 || i_29 == i_01) continue;
																														sum += a[i_29];
																														if (sum == 269) {
																															cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << endl;
																															return 0;
																														}
																														for (int i_30 = 0; i_30 < 51; i_30++){
																															if (i_30 == i_29 || i_30 == i_28 || i_30 == i_27 || i_30 == i_26 || i_30 == i_25 || i_30 == i_24 || i_30 == i_23 || i_30 == i_22 || i_30 == i_21 || i_30 == i_20 || i_30 == i_19 || i_30 == i_18 || i_30 == i_17 || i_30 == i_16 || i_30 == i_15 || i_30 == i_14 || i_30 == i_13 || i_30 == i_12 || i_30 == i_11 || i_30 == i_10 || i_30 == i_09 || i_30 == i_08 || i_30 == i_07 || i_30 == i_06 || i_30 == i_05 || i_30 == i_04 || i_30 == i_03 || i_30 == i_02 || i_30 == i_01) continue;
																															sum += a[i_30];
																															if (sum == 269) {
																																cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << ' ' << i_30 << endl;
																																return 0;
																															}
																															for (int i_31 = 0; i_31 < 51; i_31++){
																																if (i_31 == i_30 || i_31 == i_29 || i_31 == i_28 || i_31 == i_27 || i_31 == i_26 || i_31 == i_25 || i_31 == i_24 || i_31 == i_23 || i_31 == i_22 || i_31 == i_21 || i_31 == i_20 || i_31 == i_19 || i_31 == i_18 || i_31 == i_17 || i_31 == i_16 || i_31 == i_15 || i_31 == i_14 || i_31 == i_13 || i_31 == i_12 || i_31 == i_11 || i_31 == i_10 || i_31 == i_09 || i_31 == i_08 || i_31 == i_07 || i_31 == i_06 || i_31 == i_05 || i_31 == i_04 || i_31 == i_03 || i_31 == i_02 || i_31 == i_01) continue;
																																sum += a[i_31];
																																if (sum == 269) {
																																	cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << ' ' << i_30 << ' ' << i_31 << endl;
																																	return 0;
																																}
																																for (int i_32 = 0; i_32 < 51; i_32++){
																																	if (i_32 == i_31 || i_32 == i_30 || i_32 == i_29 || i_32 == i_28 || i_32 == i_27 || i_32 == i_26 || i_32 == i_25 || i_32 == i_24 || i_32 == i_23 || i_32 == i_22 || i_32 == i_21 || i_32 == i_20 || i_32 == i_19 || i_32 == i_18 || i_32 == i_17 || i_32 == i_16 || i_32 == i_15 || i_32 == i_14 || i_32 == i_13 || i_32 == i_12 || i_32 == i_11 || i_32 == i_10 || i_32 == i_09 || i_32 == i_08 || i_32 == i_07 || i_32 == i_06 || i_32 == i_05 || i_32 == i_04 || i_32 == i_03 || i_32 == i_02 || i_32 == i_01) continue;
																																	sum += a[i_32];
																																	if (sum == 269) {
																																		cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << ' ' << i_30 << ' ' << i_31 << ' ' << i_32 << endl;
																																		return 0;
																																	}
																																	for (int i_33 = 0; i_33 < 51; i_33++){
																																		if (i_33 == i_32 || i_33 == i_31 || i_33 == i_30 || i_33 == i_29 || i_33 == i_28 || i_33 == i_27 || i_33 == i_26 || i_33 == i_25 || i_33 == i_24 || i_33 == i_23 || i_33 == i_22 || i_33 == i_21 || i_33 == i_20 || i_33 == i_19 || i_33 == i_18 || i_33 == i_17 || i_33 == i_16 || i_33 == i_15 || i_33 == i_14 || i_33 == i_13 || i_33 == i_12 || i_33 == i_11 || i_33 == i_10 || i_33 == i_09 || i_33 == i_08 || i_33 == i_07 || i_33 == i_06 || i_33 == i_05 || i_33 == i_04 || i_33 == i_03 || i_33 == i_02 || i_33 == i_01) continue;
																																		sum += a[i_33];
																																		if (sum == 269) {
																																			cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << ' ' << i_30 << ' ' << i_31 << ' ' << i_32 << ' ' << i_33 << endl;
																																			return 0;
																																		}
																																		for (int i_34 = 0; i_34 < 51; i_34++){
																																			if (i_34 == i_33 || i_34 == i_32 || i_34 == i_31 || i_34 == i_30 || i_34 == i_29 || i_34 == i_28 || i_34 == i_27 || i_34 == i_26 || i_34 == i_25 || i_34 == i_24 || i_34 == i_23 || i_34 == i_22 || i_34 == i_21 || i_34 == i_20 || i_34 == i_19 || i_34 == i_18 || i_34 == i_17 || i_34 == i_16 || i_34 == i_15 || i_34 == i_14 || i_34 == i_13 || i_34 == i_12 || i_34 == i_11 || i_34 == i_10 || i_34 == i_09 || i_34 == i_08 || i_34 == i_07 || i_34 == i_06 || i_34 == i_05 || i_34 == i_04 || i_34 == i_03 || i_34 == i_02 || i_34 == i_01) continue;
																																			sum += a[i_34];
																																			if (sum == 269) {
																																				cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << ' ' << i_30 << ' ' << i_31 << ' ' << i_32 << ' ' << i_33 << ' ' << i_34 << endl;
																																				return 0;
																																			}
																																			for (int i_35 = 0; i_35 < 51; i_35++){
																																				if (i_35 == i_34 || i_35 == i_33 || i_35 == i_32 || i_35 == i_31 || i_35 == i_30 || i_35 == i_29 || i_35 == i_28 || i_35 == i_27 || i_35 == i_26 || i_35 == i_25 || i_35 == i_24 || i_35 == i_23 || i_35 == i_22 || i_35 == i_21 || i_35 == i_20 || i_35 == i_19 || i_35 == i_18 || i_35 == i_17 || i_35 == i_16 || i_35 == i_15 || i_35 == i_14 || i_35 == i_13 || i_35 == i_12 || i_35 == i_11 || i_35 == i_10 || i_35 == i_09 || i_35 == i_08 || i_35 == i_07 || i_35 == i_06 || i_35 == i_05 || i_35 == i_04 || i_35 == i_03 || i_35 == i_02 || i_35 == i_01) continue;
																																				sum += a[i_35];
																																				if (sum == 269) {
																																					cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << ' ' << i_30 << ' ' << i_31 << ' ' << i_32 << ' ' << i_33 << ' ' << i_34 << ' ' << i_35 << endl;
																																					return 0;
																																				}
																																				for (int i_36 = 0; i_36 < 51; i_36++){
																																					if (i_36 == i_35 || i_36 == i_34 || i_36 == i_33 || i_36 == i_32 || i_36 == i_31 || i_36 == i_30 || i_36 == i_29 || i_36 == i_28 || i_36 == i_27 || i_36 == i_26 || i_36 == i_25 || i_36 == i_24 || i_36 == i_23 || i_36 == i_22 || i_36 == i_21 || i_36 == i_20 || i_36 == i_19 || i_36 == i_18 || i_36 == i_17 || i_36 == i_16 || i_36 == i_15 || i_36 == i_14 || i_36 == i_13 || i_36 == i_12 || i_36 == i_11 || i_36 == i_10 || i_36 == i_09 || i_36 == i_08 || i_36 == i_07 || i_36 == i_06 || i_36 == i_05 || i_36 == i_04 || i_36 == i_03 || i_36 == i_02 || i_36 == i_01) continue;
																																					sum += a[i_36];
																																					if (sum == 269) {
																																						cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << ' ' << i_30 << ' ' << i_31 << ' ' << i_32 << ' ' << i_33 << ' ' << i_34 << ' ' << i_35 << ' ' << i_36 << endl;
																																						return 0;
																																					}
																																					for (int i_37 = 0; i_37 < 51; i_37++){
																																						if (i_37 == i_36 || i_37 == i_35 || i_37 == i_34 || i_37 == i_33 || i_37 == i_32 || i_37 == i_31 || i_37 == i_30 || i_37 == i_29 || i_37 == i_28 || i_37 == i_27 || i_37 == i_26 || i_37 == i_25 || i_37 == i_24 || i_37 == i_23 || i_37 == i_22 || i_37 == i_21 || i_37 == i_20 || i_37 == i_19 || i_37 == i_18 || i_37 == i_17 || i_37 == i_16 || i_37 == i_15 || i_37 == i_14 || i_37 == i_13 || i_37 == i_12 || i_37 == i_11 || i_37 == i_10 || i_37 == i_09 || i_37 == i_08 || i_37 == i_07 || i_37 == i_06 || i_37 == i_05 || i_37 == i_04 || i_37 == i_03 || i_37 == i_02 || i_37 == i_01) continue;
																																						sum += a[i_37];
																																						if (sum == 269) {
																																							cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << ' ' << i_30 << ' ' << i_31 << ' ' << i_32 << ' ' << i_33 << ' ' << i_34 << ' ' << i_35 << ' ' << i_36 << ' ' << i_37 << endl;
																																							return 0;
																																						}
																																						for (int i_38 = 0; i_38 < 51; i_38++){
																																							if (i_38 == i_37 || i_38 == i_36 || i_38 == i_35 || i_38 == i_34 || i_38 == i_33 || i_38 == i_32 || i_38 == i_31 || i_38 == i_30 || i_38 == i_29 || i_38 == i_28 || i_38 == i_27 || i_38 == i_26 || i_38 == i_25 || i_38 == i_24 || i_38 == i_23 || i_38 == i_22 || i_38 == i_21 || i_38 == i_20 || i_38 == i_19 || i_38 == i_18 || i_38 == i_17 || i_38 == i_16 || i_38 == i_15 || i_38 == i_14 || i_38 == i_13 || i_38 == i_12 || i_38 == i_11 || i_38 == i_10 || i_38 == i_09 || i_38 == i_08 || i_38 == i_07 || i_38 == i_06 || i_38 == i_05 || i_38 == i_04 || i_38 == i_03 || i_38 == i_02 || i_38 == i_01) continue;
																																							sum += a[i_38];
																																							if (sum == 269) {
																																								cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << ' ' << i_30 << ' ' << i_31 << ' ' << i_32 << ' ' << i_33 << ' ' << i_34 << ' ' << i_35 << ' ' << i_36 << ' ' << i_37 << ' ' << i_38 << endl;
																																								return 0;
																																							}
																																							for (int i_39 = 0; i_39 < 51; i_39++){
																																								if (i_39 == i_38 || i_39 == i_37 || i_39 == i_36 || i_39 == i_35 || i_39 == i_34 || i_39 == i_33 || i_39 == i_32 || i_39 == i_31 || i_39 == i_30 || i_39 == i_29 || i_39 == i_28 || i_39 == i_27 || i_39 == i_26 || i_39 == i_25 || i_39 == i_24 || i_39 == i_23 || i_39 == i_22 || i_39 == i_21 || i_39 == i_20 || i_39 == i_19 || i_39 == i_18 || i_39 == i_17 || i_39 == i_16 || i_39 == i_15 || i_39 == i_14 || i_39 == i_13 || i_39 == i_12 || i_39 == i_11 || i_39 == i_10 || i_39 == i_09 || i_39 == i_08 || i_39 == i_07 || i_39 == i_06 || i_39 == i_05 || i_39 == i_04 || i_39 == i_03 || i_39 == i_02 || i_39 == i_01) continue;
																																								sum += a[i_39];
																																								if (sum == 269) {
																																									cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << ' ' << i_30 << ' ' << i_31 << ' ' << i_32 << ' ' << i_33 << ' ' << i_34 << ' ' << i_35 << ' ' << i_36 << ' ' << i_37 << ' ' << i_38 << ' ' << i_39 << endl;
																																									return 0;
																																								}
																																								for (int i_40 = 0; i_40 < 51; i_40++){
																																									if (i_40 == i_39 || i_40 == i_38 || i_40 == i_37 || i_40 == i_36 || i_40 == i_35 || i_40 == i_34 || i_40 == i_33 || i_40 == i_32 || i_40 == i_31 || i_40 == i_30 || i_40 == i_29 || i_40 == i_28 || i_40 == i_27 || i_40 == i_26 || i_40 == i_25 || i_40 == i_24 || i_40 == i_23 || i_40 == i_22 || i_40 == i_21 || i_40 == i_20 || i_40 == i_19 || i_40 == i_18 || i_40 == i_17 || i_40 == i_16 || i_40 == i_15 || i_40 == i_14 || i_40 == i_13 || i_40 == i_12 || i_40 == i_11 || i_40 == i_10 || i_40 == i_09 || i_40 == i_08 || i_40 == i_07 || i_40 == i_06 || i_40 == i_05 || i_40 == i_04 || i_40 == i_03 || i_40 == i_02 || i_40 == i_01) continue;
																																									sum += a[i_40];
																																									if (sum == 269) {
																																										cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << ' ' << i_30 << ' ' << i_31 << ' ' << i_32 << ' ' << i_33 << ' ' << i_34 << ' ' << i_35 << ' ' << i_36 << ' ' << i_37 << ' ' << i_38 << ' ' << i_39 << ' ' << i_40 << endl;
																																										return 0;
																																									}
																																									for (int i_41 = 0; i_41 < 51; i_41++){
																																										if (i_41 == i_40 || i_41 == i_39 || i_41 == i_38 || i_41 == i_37 || i_41 == i_36 || i_41 == i_35 || i_41 == i_34 || i_41 == i_33 || i_41 == i_32 || i_41 == i_31 || i_41 == i_30 || i_41 == i_29 || i_41 == i_28 || i_41 == i_27 || i_41 == i_26 || i_41 == i_25 || i_41 == i_24 || i_41 == i_23 || i_41 == i_22 || i_41 == i_21 || i_41 == i_20 || i_41 == i_19 || i_41 == i_18 || i_41 == i_17 || i_41 == i_16 || i_41 == i_15 || i_41 == i_14 || i_41 == i_13 || i_41 == i_12 || i_41 == i_11 || i_41 == i_10 || i_41 == i_09 || i_41 == i_08 || i_41 == i_07 || i_41 == i_06 || i_41 == i_05 || i_41 == i_04 || i_41 == i_03 || i_41 == i_02 || i_41 == i_01) continue;
																																										sum += a[i_41];
																																										if (sum == 269) {
																																											cout << "successful:" << ' ' << i_01 << ' ' << i_02 << ' ' << i_03 << ' ' << i_04 << ' ' << i_05 << ' ' << i_06 << ' ' << i_07 << ' ' << i_08 << ' ' << i_09 << ' ' << i_10 << ' ' << i_11 << ' ' << i_12 << ' ' << i_13 << ' ' << i_14 << ' ' << i_15 << ' ' << i_16 << ' ' << i_17 << ' ' << i_18 << ' ' << i_19 << ' ' << i_20 << ' ' << i_21 << ' ' << i_22 << ' ' << i_23 << ' ' << i_24 << ' ' << i_25 << ' ' << i_26 << ' ' << i_27 << ' ' << i_28 << ' ' << i_29 << ' ' << i_30 << ' ' << i_31 << ' ' << i_32 << ' ' << i_33 << ' ' << i_34 << ' ' << i_35 << ' ' << i_36 << ' ' << i_37 << ' ' << i_38 << ' ' << i_39 << ' ' << i_40 << ' ' << i_41 << endl;
																																											return 0;
																																										}
																																									}
																																								}
																																							}
																																						}
																																					}
																																				}
																																			}
																																		}
																																	}
																																}
																															}
																														}
																													}
																												}
																											}
																										}
																									}
																								}
																							}
																						}
																					}
																				}
																			}
																		}
																	}
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	return 0;
}

扩展:
  上述代码只能求出一种平局的情况(如果存在平局),有没有求出所有平局的情况(存在平局且平局情况大于等于1)?

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值