题目:
http://ybt.ssoier.cn:8088/problem_show.php?pid=1236
1236 区间合并
代码:
#include<bits/stdc++.h>
using namespace std;
struct S
{
int begin,end;
}l,ll;
bool cmp(S a,S b)
{
if(a.begin!=b.begin) return a.begin >b.begin;
else return a.end>b.end;
}
struct stack
{
S data[10001];
int len;
void In(S x)
{
len++;
data[len]=x;
}
S Out()
{
len--;
return data[len+1];
}
}X;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>l.begin>>l.end;
X.In(l);
}
sort(X.data+1,X.data+n+1,cmp);
for(int i=1;i<=n;i++)
{
l=X.Out();
if(X.len==0)
{
cout<<l.begin<<" "<<l.end;
}
else
{
ll=X.Out();
if(l.end>=ll.begin)
{
l.end=ll.end;
X.In(l);
}
else
{
cout<<"no";
return 0;
}
}
}
}
问题:
我觉得写的没问题,自己也是有测试过数据的
但是过不了
请不要直接发答案,而是给出修改建议,可以的话请上面程序批注错误