4 条题解

  • 3
    @ 2025-7-16 16:48:55

    `#include<bits/stdc++.h> using namespace std;

    const int MAXN = 1e5 + 10; struct node { int begin, end, id; }a[MAXN];

    bool cmp(node a, node b) { return a.end < b.end; }

    int n, ans = 0, num[MAXN], len; int 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] << " ";
    }
    

    }`

    信息

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