4 条题解

  • 0
    @ 2025-7-16 16:55:14
    #include<bits/stdc++.h>
    #define int long long
    const int N=1e7+10;
    using namespace std;
    int n,num[N],len,ans;
    struct node{
    	int begin,end,id;
    }a[N];
    bool cmp(node a1,node a2){
    	return a1.end<a2.end;
    }
    signed main(){
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>a[i].begin>>a[i].end;
    		a[i].id=i;
    	}
    	sort(a+1,a+n+1,cmp);
    	int last=a[1].end;
    	ans=a[1].end-a[1].begin+1;
    	num[++len]=a[1].id;
    	for(int i=2;i<=n;i++){
    		if(a[i].begin>=last){
    			ans+=a[i].end-a[i].begin+1;
    			num[++len]=a[i].id;
    			last=a[i].end;
    		}
    	}
    	sort(num+1,num+len+1);
    	cout<<ans<<endl;
    	for(int i=1;i<=len;i++){
    		cout<<num[i]<<" ";
    	}
    	return 0;
    }
    
    

    信息

    ID
    1584
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    74
    已通过
    21
    上传者