1 solutions
-
0
Pascal :
uses math; var i,j,n,t:longint; a,h,f,s:array[0..100001]of longint; function find(l,r:longint):longint; var mid:longint; begin while l<=r do begin mid:=(l+r) shr 1; if (a[mid]>h[i])and(a[mid-1]<=h[i]) then exit(mid) else if a[mid]<h[i] then l:=mid+1 else r:=mid-1; end; exit(l); end; procedure qsort(l,r:longint); var i,j,temp,mid:longint; begin i:=l; j:=r; mid:=a[(l+r) div 2]; repeat while a[i]<mid do inc(i); while a[j]>mid do dec(j); if i<=j then begin temp:=a[i];a[i]:=a[j];a[j]:=temp; temp:=h[i];h[i]:=h[j];h[j]:=temp; inc(i);dec(j); end; until i>j; if l<j then qsort(l,j); if i<r then qsort(i,r); end; begin readln(n); for i:=1 to n do readln(a[i],h[i]); qsort(1,n); t:=1; fillchar(a,sizeof(a),0); a[1]:=h[1]; for i:=2 to n do if h[i]>a[t] then begin inc(t); a[t]:=h[i]; end else a[find(1,t)]:=h[i]; writeln(t); end.
- 1
Information
- ID
- 775
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By