超时了咋个办?
查看原帖
超时了咋个办?
866388
adksla楼主2023/11/16 12:51
#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;

struct Stu{
	int w;
	int id;
}stu[1000001];

struct Good{
	int c;
	int id;
}good[1000001];

//排序
bool cmp(Stu a,Stu b){
	if(a.w != b.w) return a.w > b.w;
	else return a.id < b.id;
} 

bool cmp1(Good a,Good b){
	if(a.c!=b.c) return a.c > b.c;
	else return a.id < b.id; 
}
int main(){
	int n,m;
	int sum=0;
	scanf("%d %d",&n,&m);
	for(int i=0;i<n;i++){
		scanf("%d",&stu[i].w);
		stu[i].id = i;
			
	}
	for(int i=0;i<m;i++){
		scanf("%d",&good[i].c);
		good[i].id = i;
	}
	sort(stu,stu+n,cmp);
	sort(good,good+m,cmp1);
	for(int i=0;i<n;i++){
//		printf("###%d\n",stu[i].w);
		for(int j=0;j<m;j++){
//			printf("****%d\n",good[j]);
			if(stu[i].w>=good[j].c&&good[j].c!=0){
				sum++;
				good[j].c = 0;
				break;
			} 
		}
	}
	printf("%d",sum);
}
2023/11/16 12:51
加载中...