现在基本都只能做到模拟的程度。我的思路是把将敌我的棋子放在一个数组,然后对Q做循环,当q不为0的时候就将数组中大于0的元素自减,如果在这个过程中有元素变为0,就给标志赋值true,判断这个标志时为true时q++,当循环结束后判断数组中是否还有大于0的元素,如果有的话说明GG了,反之则赢了。(个人认为我的代码存在一定的问题,因为q如果很大的话,q不能减到0,从而存在陷入死循环,但是因为题目给的q很小,所以这个题能AC) #include

using namespace std;

int main() { int T; cin >> T; while (T--) { int m, n, q; cin >> m >> n >> q; //int a1[m]; //int a2[n]; int k = 0; int arr[m + n]; for (int i = 0; i < m + n; i++) { //cin >> a1[i]; cin >> arr[k]; k++; } while (q--) { bool flag = false;

		for (int i = 0; i < m + n; i++) {
			if (arr[i] > 0) {
				arr[i]--;
				if (arr[i] == 0) {
					flag = true;
				}
			}
		}
		if (flag == true) {
			q++;
		}
	}
	bool flag2 = false;
	for (int i = 0; i < m + n; i++) {
		if (arr[i] != 0) {
			flag2 = true;
		}
	}
	if (flag2 == true) {
		cout << "GG" << endl;
	}
	else {
		cout << "Legendary" << endl;
	}




}

}