dalao别喷我,样例过了40分22ms
查看原帖
dalao别喷我,样例过了40分22ms
565707
mediocre_楼主2022/8/19 21:05
#include<bits/stdc++.h>
using namespace std;
int d[6] = {0,0,0,0,0,0}; 
int a[5][1005],b[1005];
struct Node{
	int prev,nex;
}c[1005];
int n,m;
int main(){
	scanf("%d%d",&m,&n);
	register int max = 0,min = 200005;
	for (register int i = 1;i <= n;++i){
		scanf("%d",&b[i]);
		if (b[i] > max)max = b[i];
		else if (b[i] < min)min = b[i];
	}
	register int flag = (max - min + (5 - ((max - min) % 5))) / 5;
	register int pprev = min,nnex = min + flag;
	for (register int i = 1;i <= 5;++i){
	    c[i].prev = pprev;
	    c[i].nex = nnex;
	    pprev = nnex;
	    nnex = pprev + flag;
	}
	for (register int i = 1;i <= n;++i){
		for (register int j = 1;j <= 5;++j){
			if (b[i] >= c[j].prev && b[i] < c[j].nex){
				d[j]++;
				a[j][d[j]] = b[i];
				sort(a[j] + 1,a[j] + d[j] + 1);
			}
		}
	}
	for (register int i = 1;i <= 5;++i){
		for (register int j = 1;j <= d[i];++j){
			printf("%d ",a[i][j]);
		}
	}
	return 0;
}

提交记录

2022/8/19 21:05
加载中...