问题标题: 酷町堂:2624 电视录播

0
0
已解决
朱优扬
朱优扬
中级天翼
中级天翼
#include <iostream>
#include <algorithm>
using namespace std;
struct lb{
	int right,left;
}a[210];
int n,cnt,sum1,sum2;
bool cmp(lb x,lb y){
	if(x.left!=y.left)	return x.left<y.left;
	return x.right<y.right;
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i].left>>a[i].right;
	sort(a+1,a+1+n,cmp);
	for(int i=1;i<=n;i++){
		if(a[i].left<sum1&&a[i].left<sum2)	continue;
		if(a[i].left>=sum1){
			sum1+=(a[i].right-a[i].left);
			cnt++;
		}
		else if(a[i].left>=sum2){
			sum2+=(a[i].right-a[i].left);
			cnt++;	
		}
	}
	cout<<cnt;
	return 0;
}

哪错了?或给新思路

朱优扬在2021-03-26 22:13:54追加了内容

快!!!


0
1
蔡乐毅
蔡乐毅
高级光能
高级光能

在第一层循环里加个排序(17行)

蔡乐毅在2021-03-26 22:18:40追加了内容

且sum(1或2)是变成a[i].right

而不是加

我要回答