求助p1047
  • 板块题目总版
  • 楼主xnkno3
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/12/18 21:51
  • 上次更新2024/12/19 16:45:59
查看原帖
求助p1047
701133
xnkno3楼主2024/12/18 21:51
#include<bits/stdc++.h>
using namespace std;
struct qujian
{
	int left, right;
};
qujian qj[300010];
bool cmp(qujian a, qujian b)
{
	return a.left < b.left;
}
int main()
{
	int l, m;
	scanf("%d%d", &l, &m);
	for(int i = 1; i <= m; i++) scanf("%d%d", &qj[i].left, &qj[i].right);
	sort(qj + 1, qj + m + 1, cmp);
	int ans = 0;
	qj[m+1]={1e9+1,1e9+1};
	for(int i = 1; i <= m; i++)
	{
		if(qj[i].right < qj[i + 1].left) ans += qj[i].left - qj[i].left + 1;
		else qj[i + 1] = {min(qj[i].left, qj[i + 1].left), max(qj[i].right, qj[i + 1].right)};
	}
	printf("%d", l + 1 - ans);
	return 0;
}

不知道哪错了,输出的结果很离谱。

2024/12/18 21:51
加载中...