救命!我写了2个代码,有一个能过8个点,另外一个能过剩下的2个点
查看原帖
救命!我写了2个代码,有一个能过8个点,另外一个能过剩下的2个点
359845
岂非楼主2021/2/8 09:53

过8个点代码如下

#include <string>
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int n,mm,j;
double m;
struct xs{
	int k;
	int s;
};
bool cmp(xs q,xs w){
	if(q.s==w.s) return q.k<w.k;
	return q.s>w.s;
}
int main(){
	scanf("%d%lf",&n,&m);
	xs a[n];
	for(int i=0;i<n;i++){
		scanf("%d%d",&a[i].k,&a[i].s);
	}
	sort(a,a+n,cmp);
	m*=1.5;
	mm=floor(m);
	j=mm+1;
	while(a[j].s==a[mm].s) j++;
	printf("%d %d\n",a[mm].s,j);
	for(int i=0;i<j;i++){
		printf("%d %d\n",a[i].k,a[i].s);
	}
	return 0;
}

过剩下2个点代码如下

#include <string>
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int n,mm,j;
double m;
struct xs{
	int k;
	int s;
};
bool cmp(xs q,xs w){
	if(q.s==w.s) return q.k<w.k;
	return q.s>w.s;
}
int main(){
	scanf("%d%lf",&n,&m);
	xs a[n];
	for(int i=0;i<n;i++){
		scanf("%d%d",&a[i].k,&a[i].s);
	}
	sort(a,a+n,cmp);
	m*=1.5;
	mm=floor(m);
	j=mm-1;
	while(a[j].s==a[mm].s) j--;
	printf("%d %d\n",a[j].s,j+1);
	for(int i=0;i<=j;i++){
		printf("%d %d\n",a[i].k,a[i].s);
	}
	return 0;
}
2021/2/8 09:53
加载中...