0
点赞
收藏
分享

微信扫一扫

基本算法练习--马路上的路灯


  这个跟 路灯问题有点像,思路也比较简单,代码如下:

#include <iostream>
#include <algorithm>

using namespace std;

typedef struct {
int start;
int end;
}Line;

bool compare(Line la,Line lb){
return la.start<lb.start;
}

int main(){
int M,N;
cin>>M;
cin>>N;

int sum=M+1;

Line* line; line = new Line;

for(int i=0;i<N;i++){
cin>>line[i].start;
cin>>line[i].end;
}
sort(line,line+N,compare);

for(int i=0;i<N-1;i++){
if(line[i].end<line[i+1].start){
sum=sum-line[i].end + line[i].start -1;
}else{
sum=sum-line[i].end + line[i].start -1;
sum +=line[i].end-line[i+1].start+1;
}
};

if(line[N-1].end<line[N].start){
sum=sum-line[N-1].end + line[N-1].start -1;
}else{
sum=sum-line[N-1].end + line[N-1].start -1;
sum +=line[N-1].end-line[N].start+1;
sum=sum-line[N].end + line[N].start -1;
}
delete line;
cout<<sum;
return 0;
}

  这里主要是用到了结构体的排序。 

  代码评测通过率为25%,不知道哪里出了问题。 ?

举报

相关推荐

0 条评论