30分,大佬求助!!!
  • 板块P1568 赛跑
  • 楼主yuanbingtao
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/6/21 21:11
  • 上次更新2023/10/27 22:51:46
查看原帖
30分,大佬求助!!!
694295
yuanbingtao楼主2022/6/21 21:11
#include <iostream>
#include <algorithm>

using namespace std;

int n, m, ad, bd, s, ans;
bool flag, l, k;

struct S{
	int l, v;
};

S a[1010], b[1010];

int main() {
	cin >> n >> m;
	for (int i = 0; i < n; i++) {
		cin >> a[i]. v >> a[i].l;
	}
	for (int i = 0; i < m; i++) {
		cin >> b[i].v >> b[i].l;
	}
	for (int i = 1, j = 1, sum = 0; min(i, j) < min(n, m) ; sum++) {
		if (a[s].l > 0) {
			a[s].l--;
			ad += a[s].v;
		} else {
			a[s].l = a[i].l, a[s].v = a[i++].v;
		}
		if (b[s].l > 0) {
			b[s].l--;
			bd += b[s].v;
		} else {
			b[s].l = b[j].l, b[s].v = a[j++].v;
		}
		if (!l) {
			if (ad < bd) {
				flag = 1;
				ans++, l = 1;
			} else if(ad > bd) {
				flag = 0;
				ans++, l = 1;
			}
			continue;
		}
		if (ad < bd) {
			k = 1;
		} else if(ad > bd) {
			k = 0;
		}
		if (k != flag){
			flag = k;
			ans++;
		}
	}
    if (n != m) {
        ans++;
    }
	cout << ans << endl;
	return 0;
}
2022/6/21 21:11
加载中...