为什么TLE过不去
查看原帖
为什么TLE过不去
759274
Stevehim楼主2022/11/28 13:15
#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <string>
#define maxn 1000100
using namespace std;

struct day {
	int num;
	int val;
} a[maxn];
int n;

bool cmp(day a, day b) {
	return a.val < b.val;
}

int check(int x) {
	int t1 = 1e9 + 10;
//	int t2 = 0;
	if (a[x].num == 0) {
		return a[x].val;
	}
	for (int i = 0; i < n; i++) {
		if (a[i].num < a[x].num) {
			t1 = min(abs(a[i].val - a[x].val), t1);
//			cout << "t1=" << t1 << endl;
		}
	}
	return t1;
}

int main() {
	cin >> n;
	for (int i = 0; i < n; i++) {
		scanf("%d", &a[i].val);
		a[i].num = i;
	}
	int sum = 0;
	sort(a, a + n, cmp);
//	cout << "sum=" << sum << endl;
	for (int i = 0; i < n; i++) {
//		cout << ":" << check(i) << endl;
		sum += check(i);
	}
	cout << sum;
	return 0;
}

2022/11/28 13:15
加载中...