Codeforces Round 919 (Div. 2) A-D

A

找到约束的范围,就是k能取的最小值和最大值。这时候符合条件的数有Rmin - Lmax + 1个。还有第三个约束条件,将不能取的数记录下来,遍历一遍。记录在Rmin 到 Lmax 的个数 s ,答案就是Rmin - Lmax + 1 - s

const int N = 200005;

int n;

int q[N];
int ide;

void f()
{
	cin >> n;

	ide = 0;
	int l = 0;
	int r = 1e9+1;
	for (int i = 1; i <= n; i++)
	{
		int x, y;
		cin >> x >> y;

		if (x == 1)
		{
			l = max(y, l);
		}
		else if (x == 2)
		{
		     r = min(r, y);
		}
		else
		{
			q[ide] = y;
			ide++;
		}
	}

	if (l > r)
	{
		cout << 0 << endl;
		return;
	}

	sort(q, q + ide);

	int s = 0;
	for (int i = 0; i < ide; i++)
	{
		if (q[i] >= l && q[i] <= r)s++;
	}

	cout << (r - l + 1 - s) << endl;

}
 

 

B

可以知道的是,经过Alice操作后,除非一个不剩,否者Bob一

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值