Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
156778 | 初一16班 麦睿生 | 闭区间问题 | C++ | 通过 | 100 | 0 MS | 188 KB | 645 | 2024-07-18 14:33:45 |
#include<cstdio> #include<algorithm> using namespace std; int n,i,ans,cmp_right; struct room { int left; int right; }a[40001]; bool cmp(room &c,room &d) { if(c.left==d.left)return c.right<d.right; else return c.left<d.left; } int main() { scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d %d",&a[i].left,&a[i].right); if(a[i].left>a[i].right)swap(a[i].left,a[i].right); } sort(a+1,a+1+n,cmp); cmp_right=a[1].right; for(i=2;i<=n;i++) { if(cmp_right>=a[i].left) { cmp_right=min(cmp_right,a[i].right); ans++; } else cmp_right=a[i].right; } printf("%d",ans); return 0; }