快速排序60分TLE求助大佬
查看原帖
快速排序60分TLE求助大佬
1054137
EkSulfur楼主2023/9/22 16:17
#include <iostream>
using namespace std;
int a[5000005];
void pl(int x, int y, int z); //加分函数

void qsort(int l, int r) {
	int j = l, k = r;
	int mid = a[(k + j) / 2];
	do {
		while (a[j] < mid)
			j++;
		while (a[k] > mid)
			k--;
		if (j <= k) {
			swap(a[j], a[k]);
			j++;
			k--;
		}
	} while (j <= k);
	if (l < k)
		qsort(l, k);
	if (j < r)
		qsort(j, r);
}

int main() {
	int n, m, min; //学生数,加分次数,最低分
	cin >> n >> m;
	for (int i = 1; i <= n; i++)
		cin >> a[i];
	for (int i = 1; i <= m; i++) {
		int x, y, z;
		cin >> x >> y >> z;
		pl(x, y, z);
	}
	for (int i = 1; i < n; i++) {
		int ok = 1;
		for (int j = 1; j < n; j++) {
			if (a[j] > a[j + 1])
				swap(a[j], a[j + 1]);
			ok = 0;
		}
		if (ok == 1)
			break;
	}
	cout << a[1];

	return 0;
}

void pl(int x, int y, int z) {
	for (int i = x; i <= y; i++)
		a[i] += z;
}
2023/9/22 16:17
加载中...