原神

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

int main() {
	string s;
	getline(cin, s);
	if(s.size() < 19) {
		cout << "Human" << endl;
		return 0;
	}
	string str = "";
	for(int i = 0; i <= 18; i++) {
		str += s[i];
	}
	if(str == "You are right, but ") cout << "AI" << endl;
	else cout << "Human" << endl;
	return 0;
}

分段

#include <iostream>
#define ll long long
using namespace std;

ll a[1000005];

int main() {
	ll n, k;
	cin >> n >> k;
	for(int i = 1; i <= n; i++) cin >> a[i];
	ll sum = 0, cnt = 0;
	a[0] = -1e9;
	for(int i = 1; i <= n; i++) {
		if(n - i + 1 > k) {
			if(a[i] > a[i - 1] && k >= 1) {
				k--;
				cnt++;
				sum += a[i] * cnt;
			}
			else sum += a[i] * cnt;
		}
		else {
			k--;
			cnt++;
			sum += a[i] * cnt;
		}
	}
	cout << sum << endl;
	return 0;
}

数对

#include <iostream>
#define ll long long
using namespace std;

int main() {
	int t;
	cin >> t;
	while(t--) {
		ll a, b, x;
		cin >> a >> b >> x;
		while(a >= x || b >= x) {
			if(a > b) a -= b;
			if(a < b) b -= a;
			if(a == x || b == x) break; 
		}
		if(a == x || b == x) cout << "YES" << endl;
		else cout << "NO" << endl;
	}
	return 0;
}

博弈

#include <iostream>
using namespace std;

char board[10][10];

int main() {
	int t;
	cin >> t;
	while(t--) {
		int cnt = 0;
		for(int i = 1; i <= 5; i++) {
			for(int j = 1; j <= 5; j++) {
				cin >> board[i][j];
				if(board[i][j] == 'o') cnt++;
			}
		}
		if(cnt == 1) cout << "Far" << endl;
		if(cnt == 2) cout << "Far" << endl;
		if(cnt == 3) cout << "Away" << endl;
		if(cnt == 4) cout << "Away" << endl;
	}
	return 0;
}