首页 > 学院 > 开发设计 > 正文

灯光师小明

2019-11-06 06:29:19
字体:
来源:转载
供稿:网友

灯光师小明

时间限制:1000 ms  |  内存限制:65535 KB难度:1描述灯光师小明控制着各种晚会的各种大小灯,每次晚会小明都会对灯进行很多次操作。对每盏灯只能进行两种操作,开和关。现在小明希望自己随时都知道还有多少盏灯亮着。你需要编写一个程序当小明问你时你能快速的说出还有多少盏灯亮着,晚会开始时所有的灯都是灭的。输入只有一组数据第一行输入两个正整数N,T(0<N<=100000,0<T<=1000000)N表示有N盏灯,T表示有T条指令。随后T行每行有一条指令,这条指令包含一个字符串,当字符串为CHANGE,它后面还有一个整数m,表示对第m盏灯进行一次操作(操作表示如果第m盏灯灯是开着时就关闭,如果灯是关着时就打开)。当字符串为QUERY,表示小明想查询现在还有多少盏灯亮着。输出每次查询指令输出占一行,输出当前亮着灯的个数样例输入
10 8CHANGE 1QUERYCHANGE 2QUERYCHANGE 1CHANGE 9CHANGE 7QUERY样例输出
123

#include<stdio.h>#include<string.h>int main(){	int number,time;	while(scanf("%d%d",&number,&time)!=EOF)	{		int count=0;		char str[20];		int arr[number+1];		memset(arr,0,sizeof(arr));		getchar();		while(time--)		{			gets(str);			if(str[0]=='Q')			{				PRintf("%d/n",count);			}			else			{				char *p=str;				while(*p!=' ')				{					p++;				}				int num=0;				p++;				while(*p)				{					num=num*10+*p-'0';					p++;				}			//	printf("num:%d arr[%d]:%d/n",num,num,arr[num]);				if(arr[num]==0)				{					arr[num]=1;					count++;				}				else if(arr[num]==1)				{					arr[num]=0;					count--;				}			}		}	}	return 0;}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表