- 弱弱的战壕
- 2014-04-08 20:34:07 @
评测结果
编译成功
Free Pascal Compiler version 2.6.2 [2013/02/12] for i386
Copyright (c) 1993-2012 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling foo.pas
foo.pas(37,13) Warning: Variable "a" does not seem to be initialized
Linking foo.exe
41 lines compiled, 0.1 sec , 28448 bytes code, 1628 bytes data
1 warning(s) issued
测试数据 #0: Accepted, time = 0 ms, mem = 908 KiB, score = 10
测试数据 #1: Accepted, time = 0 ms, mem = 916 KiB, score = 10
测试数据 #2: Accepted, time = 15 ms, mem = 912 KiB, score = 10
测试数据 #3: Accepted, time = 15 ms, mem = 912 KiB, score = 10
测试数据 #4: Accepted, time = 62 ms, mem = 912 KiB, score = 10
测试数据 #5: Accepted, time = 0 ms, mem = 908 KiB, score = 10
测试数据 #6: Accepted, time = 15 ms, mem = 908 KiB, score = 10
测试数据 #7: Accepted, time = 0 ms, mem = 908 KiB, score = 10
测试数据 #8: Accepted, time = 0 ms, mem = 912 KiB, score = 10
测试数据 #9: Accepted, time = 0 ms, mem = 912 KiB, score = 10
Accepted, time = 107 ms, mem = 916 KiB, score = 100
代码
Var a:Array[0..15000] of Longint;
map:Array[0..15005,1..2] of Longint;
i,j,t,n:Longint;
Procedure qsort(l,r:Longint);
Var i,j,mid1,mid2:Longint;
Begin
i:=l;
j:=r;
mid1:=map[(l+r) Div 2,1];
mid2:=map[(l+r) Div 2,2];
Repeat
While (map[i,1]>mid1) Or ((map[i,1]=mid1) And (map[i,2]>mid2)) Do Inc(i);
While (map[j,1]<mid1) Or ((map[j,1]=mid1) And (map[j,2]<mid2)) Do Dec(j);
If (i<=j) Then
Begin
map[0]:=map[i];
map[i]:=map[j];
map[j]:=map[0];
Inc(i);
Dec(j);
End;
Until i>j;
If (j>l) Then qsort(l,j);
If (i<r) Then qsort(i,r);
End;
Begin
Readln(n);
For i:=1 To n Do
Readln(map[i,1],map[i,2]);
qsort(1,n);
For i:=1 To n Do
Begin
t:=0;
For j:=i+1 To n do
If (map[i,1]>=map[j,1]) And (map[i,2]>=map[j,2]) Then
Inc(t);
Inc(a[t]);
End;
For i:=0 To n-1 Do
Writeln(a[i]);
End.
3 条评论
-
hahayang LV 10 @ 2017-04-03 15:21:16
不用排序吧?
var a, b:array[1..15000] of longint; f:array[0..14999] of longint; n, i, j, s:longint; begin readln(n); for i:=1 to n do readln(a[i], b[i]); fillchar(f, sizeof(f), 0); for i:=1 to n do begin s:=0; for j:=1 to n do if (i<>j) and (a[i]>=a[j]) and (b[i]>=b[j]) then inc(s); inc(f[s]) end; for i:=0 to n-1 do writeln(f[i]) end.
-
2015-05-04 13:07:15@
#include <cstdio>
#include <cmath>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int x[5005],y[5005];
int n,k;
int a[5005];
int main (){
freopen ("trench.in","r",stdin);
freopen ("trench.out","w",stdout);
scanf ("%d",&n);for(int i=0;i<n;i++)
scanf ("%d%d",&x[i],&y[i]);
for (int i=0;i<n;i++){
k=0;
for (int j=0;j<n;j++)
if (i!=j && x[i]>=x[j] && y[i]>=y[j])
k++;a[k]++;
}
for (int i=0;i<n;i++)
printf ("%d\n",a[i]);
return 0;
} -
2014-04-11 20:14:35@
Good!
- 1