15分的大暴力 qwq
查看原帖
15分的大暴力 qwq
545516
Habseligkeit楼主2022/10/23 13:43
#include<bits/stdc++.h>
using namespace std;
int n , ans , vis[3030];
struct node {
	int l , r , lon;
	int xd[3030];
} a[3030];

int cmp(node x , node y) {
	if(x.lon != y.lon) return x.lon > y.lon;
	if(x.l == y.l) return x.r < y.r;
	return x.l < y.l;
}

int main() {
	scanf("%d" , &n);
	for(int i = 1; i <= n; i ++) { 
	  scanf("%d %d" , &a[i].l , &a[i].r);
	  a[i].lon = a[i].r - a[i].l;
	} 
	sort(a + 1 , a + n + 1 , cmp);
	for(int i = 1; i <= n; i ++) {
		int k = 0;
		for(int j = n; j > i; j --) {
			if(a[i].l <= a[j].r && a[i].r >= a[j].l)
			  a[i].xd[++ k] = j;
		}
		if(k == 0) a[i].xd[1] = i;
	}
	for(int i = 1; i <= n; i ++) {
		if(a[i].xd[1] && !vis[a[i].xd[1]]){ 
		  ans += a[a[i].xd[1]].lon;
		  vis[a[i].xd[1]] = 1;
		} 
	}
	printf("%d\n" , ans);
	return 0;
}
2022/10/23 13:43
加载中...