A

# include <bits/stdc++.h>
using namespace std;
int n;
int main() {
	scanf("%d",&n);
	for (int i=1; i<=n; ++i) {
		if (i%3 == 0 && i%5 == 0) printf("boom\n");
		else if (i%3 == 0) printf("hand\n");
		else if (i%5 == 0) printf("jump\n");
		else printf("%d\n",i);
	}
} 

B

# include <bits/stdc++.h>
using namespace std;
int n;
int ans,maxn;
int main() {
	cin >> n;
	for (int i=1; i<=n/4; ++i)
		for (int j=1; j<=(n-i*4)/3; ++j) {
			if ((n-i*4-j*3) % 5 == 0 && (n-i*4-j*3) / 5 > 0) {
				ans++;
				maxn = max(maxn, i+j+(n-i*4-j*3)/5);
			} 
		}
	if (ans == 0) cout << -1;
	else cout << maxn << " " << ans;
}

C

# include <bits/stdc++.h>
using namespace std;
int n,ans=1;

struct card {
	string name,col;
}a[1000010];

bool cmp(card a, card b) {
	if (a.name != b.name) return a.name < b.name;
	return a.col < b.col;
}

int main() {
	cin >> n;
	for (int i=1; i<=n; ++i)
		cin >> a[i].name >> a[i].col;
	sort(a+1, a+n+1, cmp);
	for (int i=2; i<=n; ++i) 
		if (a[i].name != a[i-1].name || a[i].col != a[i-1].col) ans++;
	cout << ans;
} 

D

# include <bits/stdc++.h>
using namespace std;

int n,x,a[1000010];
long long ans;

int main() {
	cin >> n >> x;
	for (int i=1; i<=n; ++i) cin >> a[i];
	sort(a+1, a+n+1);
	for (int j=1; j<=n; ++j) { // aj > ai >= x-aj 
		int p1 = lower_bound(a+1, a+n+1, x-a[j]) - a;
		int p2 = lower_bound(a+1, a+n+1, a[j]) - a - 1;
		if (p2 >= p1) ans += p2-p1+1;
	}
	cout << ans;
} 

E

# include <bits/stdc++.h>
using namespace std;
int n,f,p,q,p1,q1,x,ans;
int main () {
	cin >> n >> f;
	int p = -100000000;
	int q = 0;
	for (int i=1; i<=n; ++i) {
		cin >> x;
		p1 = max(p, q - x);
		q1 = max(q, p + x - f);
		p = p1;
		q = q1;
		ans = max(ans, q);
	}
	cout << ans;
}