A

#include <bits/stdc++.h>
using namespace std;
int main()
{
	string a;
	cin >> a;
	cout << "0" << a[0] << a[1] << a[2]; 
	return 0;
}

B

#include <bits/stdc++.h>
using namespace std;
map<string, int> mp;
string a[105], b[105]; 
int main()
{
	int n;
	cin >> n;
	for(int i = 1; i <= n; i++)
	{
		cin >> a[i] >> b[i];
		if(a[i] != b[i])	
		{
			mp[a[i]]++;
			mp[b[i]]++; 
		}
		else
			mp[a[i]]++;
	}
	for(int i = 1; i <= n; i++)
	{
		if(mp[a[i]] >= 2 && mp[b[i]] >= 2)
		{
			printf("No\n"); 
			return 0;
		}
	}
	printf("Yes\n");
	return 0;
}

C

#include <bits/stdc++.h>
using namespace std;
int a[20][100005];
int l;
int n;
int main()
{
	scanf("%d", &n);
	a[1][1] = 1;
	l = 1;
	for(int i = 2; i <= n; i++)
	{
		for(int j = 1; j <= l; j++)
			a[i][j] = a[i - 1][j];
		a[i][l + 1] = i;
		for(int j = l + 2, k = 1; j <= l * 2 + 1; j++, k++)
			a[i][j] = a[i - 1][k];
		l = l * 2 + 1;
	}
	for(int i = 1; i <= l; i++)
		printf("%d ", a[n][i]); 
	return 0;
}

D

#include <bits/stdc++.h>
using namespace std;
#define ll long long
struct node
{
	ll x, cnt;
} q[200005];
ll head = 1, tail = 1;
ll n;
int main()
{
	scanf("%lld", &n);
	while(n--)
	{
		ll op, a, x;
		scanf("%lld%lld", &op, &a);
		if(op == 1)
		{
			scanf("%lld", &x);
			q[tail++] = {a, x};
		}
		else
		{
			ll ans = 0;
			while(a)
			{
				if(q[head].cnt <= a)
				{
					ans += (q[head].x * q[head].cnt);
					a -= q[head].cnt;
					head++;
				}
				else
				{
					ans += (q[head].x * a);
					q[head].cnt -= a;
					a = 0;
				}
			}
			printf("%lld\n", ans);
		}
	}
	
	return 0;
}