33,008
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
using namespace std;
int a[10000],b[101];
void kuaipai(int*b,int q,int p){
if(q>=p )
return ;
int i=q,j=q,r=b[p];
while( j<p ){
if(b[j]<b[p] )
swap(b[i++],b[j]);
j++;
}
swap(b[p],b[i]);
kuaipai(b,q,i-1);
kuaipai(b,i+1,p);
}
int main(){
int l,m,n;
cin>>l>>m;
for( int i=0;i<m;i++) {cin>>b[i];cin>>a[b[i]];}
kuaipai(b,0,m-1);
n=0;
for(int i=0 ;b[i];i++ ){
int k=b[i];
while(a[b[i]]>b[i+1]&&b[i+1] )
i++;
n+=( a[b[i]]-k) ;
}
cout<<l-n-1<<endl;
}
#include<iostream>
using namespace std;
int ans,L,M,line[10001];
int main()
{
cin>>L>>M;int l,r,rp=-1,flag=1;
//rp is right point of a interval,we use rp to maintain a union set of all intervals.
for(int i=1;i<=M;i++){
cin>>l>>r;
line[l]=r;
}//input data.
for(int i=0;i<=L;i++){
if(line[i]){
flag=0;
rp=max(line[i],rp);
}
if(i>rp)flag=1;
if(flag)ans++;
}//maintained rp and calculated answer.
cout<<ans<<endl;
return 0;
}