为什么会0分,第四个还超时了,求助各位大佬啊
查看原帖
为什么会0分,第四个还超时了,求助各位大佬啊
872482
B_Nullrt楼主2022/11/18 19:49
#include <stdio.h>
#include <malloc.h>
int main() {
	int n; scanf("%d", &n);
	long* nums = (long*)malloc(sizeof(long) * n);
	for (int i = 0; i < n; i++) {
		scanf("%d", &nums[i]);
	}
	
	if (n == 1) {
		printf("%d", 1);
		return 0;
	}
	//下面对成绩数组进行排序
	long tmp;
	for (int i = 0; i < n - 1; i++) {//进行n-1趟排序
		int exchange = 0;
		for (int j = n - 1; j > i; j--) {//寻找小的数往前放
			if (nums[j] < nums[j - 1]) {
				tmp = nums[j - 1];
				nums[j - 1] = nums[j];
				nums[j] = tmp;
				exchange = 1;
			}
		}
		if (exchange == 0) {//如果没有发生变化
			break;
		}
	}
	long long sum = 0; int tmpNum = 1;//tmpNum为该同学应拿到多少个橙子
	for (int i = 0; i < n - 1; i++) {
		if (nums[i] == nums[i + 1]) {
			sum += tmpNum;
		}
		else {			
			sum += tmpNum;
			tmpNum++;
		}
	}
	//for循环结束后,只剩下最后一个同学
	sum += tmpNum;
	printf("%d", sum);
	return 0;
}

2022/11/18 19:49
加载中...