大佬们看看为啥只过了一半啊
  • 板块P1161 开灯
  • 楼主wsfz_lmq
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/1/23 11:39
  • 上次更新2024/1/23 15:31:31
查看原帖
大佬们看看为啥只过了一半啊
1198354
wsfz_lmq楼主2024/1/23 11:39


#include <stdio.h>

int main()
{
	int n,t;
	double a;
	int arr[10000000] = {0};
	scanf("%d",&n);
	long long int digit = 0;//表示灯开着的数目
	long long int index = 0;//表示最后那盏开着的灯的编号
	for(int i = 1;i <= n;i++){
		scanf("%lf %d",&a,&t);																																																																																																																																									
		for(int j = 1;j <= t;j++){
			if(arr[(long long int)(a * j)] == 0){
				arr[(long long int)(a * j)] = 1;
				digit++;//开灯,数量加一
				index = (long long int)(a * j);
				//每次更新这个编号,最后会指到最后一盏灯
			}else{
				arr[(long long int)(a * j)] = 0;
				digit--;//关灯,数量减一
			}
		}
		//进行n次操作后
		if(digit == 1){
			printf("%lld",index);
			//判断如果是只有一盏灯了,输出
		}
	}
	
	
	
	return 0;
}


2024/1/23 11:39
加载中...