耗时53ms但代码长度过长,求助怎么优化
  • 板块P1161 开灯
  • 楼主zx142407789
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/1/31 15:38
  • 上次更新2023/10/24 02:22:35
查看原帖
耗时53ms但代码长度过长,求助怎么优化
881577
zx142407789楼主2023/1/31 15:38
#include<iostream>
int getin(double* a1, int* a2,int m);
int main() {
	int n = 0;
	std::cin >> n;
	if (n > 5000) return -1;
	double* a = new double[n];
	int* t = new int[n];
   //读取数据然后决定灯的长度
	int k = getin(a, t, n);
	int* lamp = new int[k+1];
   //数组0号位不用
	for (int i = 1; i < k+1; i++) {
		lamp[i] = 0;
	}
	for (int i = 0; i < n; i++) {
		for (int j = 1; j <= t[i]; j++) {
			int x = int(a[i] * j);
			if (!lamp[x]) lamp[x] = 1;
			else lamp[x] = 0;
		}
	}
	for (int i = 1; i < k + 1; i++) {
		if (lamp[i]) {
			std::cout << i;
			break;
		}
	}
	return 0;
}
int getin(double* a1, int* a2,int m) {
	int x = 0;
	for (int i = 0; i < m; i++) {
		std::cin >> a1[i] >> a2[i];
		if (x<int(a1[i] * a2[i])) {
        //找a*t的最大值也就是最后一盏灯用来			//决定灯的数量
			x = int(a1[i] * a2[i]);
		}
	}
	return x;
}
2023/1/31 15:38
加载中...