帮我看看

#include<iostream>
using namespace std;

void changeint(int &a, int &b,int &c,int &d)//数据改变,使得重合部分变为一组新数据和一组无效数据(0,0)
{
if (a != 0 && b != 0)//判断是否为有效数字
{
if (a <=c&&c <=b&&b <=d)//两组数据形如a c b d,交换bd,保留ab
{
b = d;
c = 0;
d = 0;
}

if (a <=c&&d <=b)//两组数据形如acdb,保留ab
{
c = 0;
d = 0;
}
}
}

int main()
{
long long int L, M;
cin >> L >> M;
int n[100], m[100];
for (int i = 0; i < 100; i++)
{
if (i < M)
{
cin >> n[i] >> m[i];//赋值
n[i] = n[i] + 1;//避免将输入的0视为无效数字
m[i] = m[i] + 1;
}
else
{
n[i] = 0;//多余数字无效化
m[i] = 0;
}
}

for (int i = 0; i < M; i++)
{
for (int j = 0; j < M; j++)

{
if (j != i)
changeint(n[i], m[i], n[j], m[j]);//任意两组数据修改
}
}

int s = 0;
for (int i = 0; i < M; i++)
{
if (n[i] != 0)
s += (m[i] - n[i] + 1);
}
int fuck = L - s + 1;
cout << fuck << endl;
return 0;
}

0 条评论

目前还没有评论...

信息

ID
1103
难度
4
分类
模拟 点击显示
标签
递交数
14290
已通过
6515
通过率
46%
被复制
50
上传者