这题目到底错哪了??
题目http://我写的代码:
#include<iostream>
using namespace std;
struct node{
int begin;
int end;
int w;
}l[109];
int cmp(const void *a,const void *b){
if(((node *)a)->begin!=((node *)b)->begin)
return ((node *)a)->begin-((node *)b)->begin;
else
return ((node *)a)->end-((node *)b)->end;
}
int main(){
int n;
int str[290];
cin >> n ;
for(int i=0; i<n; ++i){
cin >> l[i].begin >>l[i].end;
l[i].w=i;
}
qsort(l,n,sizeof(l[0]),cmp);
int begin=0;
for(int i=0; i<n; ++i){
if(l[i].begin>begin){
begin=l[i].begin;
}
else{
if((begin+1)<=l[i].end){
begin+=1;
}
}
str[l[i].w]=begin;
}
for(int i=0; i<n; ++i){
cout<< str[i];
if(i<n) cout<<" ";
}
cout<<endl;
return 0;
}
自己想了几个测试数据都过了,为什么提交第3个列子老过不去啊,到底错哪了啊