1 条题解

  • 1
    @ 2026-1-14 13:22:26
    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    const int N=2e5+10;
    struct nd{int id,a,c;}d[N];
    int top,q[N];
    signed main()
    {
    	int n;scanf("%lld",&n);
    	for(int i=1;i<=n;i++)
    	{
    		scanf("%lld%lld",&d[i].a,&d[i].c);
    		d[i].id=i;
    	}
    	sort(d+1,d+n+1,[](nd n1,nd n2){return n1.a<n2.a;});
    	for(int i=1;i<=n;i++)
    	{
    		while(top&&d[q[top]].c>d[i].c)top--;
    		q[++top]=i;
    	}
    	for(int i=1;i<=top;i++)q[i]=d[q[i]].id;
    	sort(q+1,q+top+1);
    	printf("%lld\n",top);
    	for(int i=1;i<=top;i++)printf("%lld ",q[i]); 
    	return 0;
    }
    
    • 1

    信息

    ID
    1594
    时间
    2000ms
    内存
    1024MiB
    难度
    7
    标签
    递交数
    20
    已通过
    8
    上传者