1 条题解

  • 0
    @ 2025-4-12 21:33:54

    C++ :

    #include<bits/stdc++.h>
    using namespace std;
    int n,m,c,t;
    struct fj
    {
    	int bianhao,fenshu;
    }a[100000];
    bool cmp(fj a,fj b)
    {
    	if(a.fenshu!=b.fenshu)return a.fenshu>b.fenshu;
    	else return a.bianhao<b.bianhao;
    }
    int main(){
        cin>>n>>m;
    	for(int i=1;i<=n;i++)
    		cin>>a[i].bianhao>>a[i].fenshu;
    	sort(a+1,a+n+1,cmp);
    	m*=1.5;c=a[m].fenshu;
    	cout<<c<<" ";
        for(int i=1;i<=n;i++)
        if(a[i].fenshu>=c)t++;
        else break;
        cout<<t<<endl;
    	for(int i=1;i<=n;i++)
        if(a[i].fenshu>=c)cout<<a[i].bianhao<<" "<<a[i].fenshu<<endl;
        return 0;
    }
    

    Pascal :

    var
    n,m,i,z,o,l:integer;
    k,a:array[1..5000]of integer;
    
    procedure qsort(l,h:integer);
    var i,j,t,m,max:integer;
    begin
    i:=l;
    j:=h;
    m:=a[(i+j)div 2];
    repeat
    while a[i]<m do inc(i);
    while m<a[j] do dec(j);
    if i<=j then
    begin
    t:=a[i];   max:=k[i];
    a[i]:=a[j]; k[i]:=k[j];
    a[j]:=t;  k[j]:=max;
    inc(i);
    dec(j);
    end;
    until i>j;
    if j>l then qsort(l,j);
    if i<h then qsort(i,h);
    end;
    
    begin
      readln(n,m);
      for i:=1 to n do read(k[i],a[i]);
      qsort(1,n);
      z:=trunc(1.5*m);
      for i:=1 to n do
       if a[i]=a[n-z+1] then begin o:=i;break;end;
      writeln(a[n-z+1],' ',n-o+1);
      for i:=n downto o do
      begin
      if a[i]=a[i-1] then if k[i]>k[i-1] then begin z:=k[i];k[i]:=k[i-1];k[i-1]:=z;end;
      writeln(k[i],' ',a[i]);end;
    end.
    
    • 1

    信息

    ID
    722
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者