大佬看看为什么错了
  • 板块P1161 开灯
  • 楼主xrpo0
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/4 09:34
  • 上次更新2024/1/4 16:36:36
查看原帖
大佬看看为什么错了
1239657
xrpo0楼主2024/1/4 09:34
#include <stdio.h>

int main() {
	int n, t;
	double a;
	scanf("%d", &n);
	double max = 0.0;
	int b[n];
	double m[n];
	for (int i = 0; i < n; i++) {
		scanf("%lf %d", &a, &t);
		m[i] = a;
		b[i] = t;
		if (a * t > max)
			max = a * t;
	}
	int max1 = (int)max;
	int x [max1];
	for (int i = 0; i < max1; i++) {
		x[i] = 0;
	}
	for (int i = 0; i < n; i++) {
		for (int j = 1; j <= b[i]; j++) {
			if (x[(int)(m[i]*j)] == 0) {
				x[(int)(m[i]*j)] = 1;
			} else {
				x[(int)(m[i]*j)] = 0;
			}
		}
	}
	for (int i = 0; i < max1; i++) {
		if (x[i] == 1) {
			printf("%d", i);
			break;
		}
	}
	return 0;
}

为什么我不去找max1,直接把x数组长度定义为2000001就对了

2024/1/4 09:34
加载中...