P5661逻辑错误,麻烦帮个忙,谢谢啦
查看原帖
P5661逻辑错误,麻烦帮个忙,谢谢啦
453741
Lemon柠檬茶楼主2021/10/3 11:54

###代码逻辑貌似错了...各位可以帮忙看看吗

#include<iostream>
using namespace std;

const long long N = 1e7;
long long c[N][2];
struct k {
	bool p;
	long long price;
	long long t;
} k[N];
int main() {
	int f = 0;
	long long n;
	cin >> n;
	for (long long i = 1; i <= n; i++) {
		cin >> k[i].p >> k[i].price >> k[i].t;
		if (!k[i].p) {
			c[i][1] = k[i].price;
			c[i][2] = k[i].t;
		}
	}
	for (long long i = 1; i <= n; i++) {
		for (long long j = f; j <= i && k[i].p; j++) {
			if ((k[i].t - c[j][2]) < 46) {
				if (c[j][1] != 0 && c[j][1] >= k[i].price) {
					k[i].price = 0;
					c[j][1] = 0;
					break;
				}
			} else f = j;
		}
	}
	long long peace = 0;
	for (long long i = 1; i <= n; i++) {
		peace += k[i].price;
	}
	cout << peace;
	return 0;
}
2021/10/3 11:54
加载中...