1 solutions
-
0
C :
#include<stdio.h> #include<string.h> #include<stdlib.h> struct num{ int b,c; }a[10002]; int cmp(const void *x,const void *y){ struct num * a1=(struct num *)x; struct num * a2=(struct num *)y; if(a1->c!=a2->c) return (a1->c<a2->c)?-1:1; else return (a1->b<a2->b)?-1:1; } int main() { int m; scanf("%d",&m); while(m--){ int n,i,p,count=1; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d",&a[i].b,&a[i].c); qsort(a,n,sizeof(a[0]),cmp); p=a[0].c; for(i=1;i<n;i++){ if(a[i].b>p){ count++; p=a[i].c; } } printf("%d\n",count); } return 0; }C++ :
#include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; struct node { int start; int end; }s[10003]; bool cmp(node x,node y) { if(x.end==y.end) return x.start>y.start; return x.end<y.end; } int main() { int test,num,n,flag,i; scanf("%d",&test); while(test--) { num = 1; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d",&s[i].start,&s[i].end); sort(s,s+n,cmp); flag = s[0].end; for(i=1;i<n;i++) if(s[i].start>flag) { num ++; flag = s[i].end; } printf("%d\n",num); } return 0; }
- 1
Information
- ID
- 16383
- Time
- 1000ms
- Memory
- 64MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By