标签:按钮 区间 stream csuoj code ace out 选择 inline
Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 341 Solved: 127
应教学安排,yy又去开心的做电学实验了。实验的内容分外的简单一串按钮通过编程了的EEPROM可以控制一串彩灯。然而选择了最low的一种一对一的控制模式,并很快按照实验指导书做完实验的yy马上感觉到十分无趣。于是他手指在一排按钮上无聊的滑来滑去,对应的彩灯也不断的变化着开关。已知每一个按钮按下会改变对应一个彩灯的状态,如此每次yy滑动都会改变一串彩灯的状态。现已知彩灯最初的状态,已经yy n次无聊的滑动的起点和终点l,r。现问彩灯最终的状态。
有多组数据。
每组数据第一行,n(1<=n<=10^5)代表彩灯串长度,t(0<=t<=10^5)代表yy滑动的次数
第二行n个数(0表示灭1表示亮)给出n个彩灯的目前的状态。
之后t行每行两个数li,ri(1<=li<=ri<=n)代表每次滑动的区间。
每组用一行输出最终的串的状态,格式见样例。
3 2 1 0 1 1 3 2 3
0 0 1
1 #include <iostream> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <cstring> 5 #include <math.h> 6 7 using namespace std; 8 int a[100505],vis[100505]; 9 10 int main() 11 { 12 int n,m; 13 while(~scanf("%d%d",&n,&m)) 14 { 15 for(int i=1;i<=n;++i) 16 { 17 scanf("%d",&a[i]); 18 vis[i]=0; 19 } 20 int x,y; 21 for(int i=0;i<m;++i) 22 { 23 scanf("%d%d",&x,&y); 24 vis[x]++; 25 vis[y+1]--; 26 } 27 int sum=0; 28 for(int i=1;i<=n;++i) 29 { 30 sum+=vis[i]; 31 if((sum%2)==0) 32 printf("%d ",a[i]); 33 else 34 printf("%d ",a[i]^1); 35 } 36 printf("\n"); 37 } 38 return 0; 39 }
标签:按钮 区间 stream csuoj code ace out 选择 inline
原文地址:http://www.cnblogs.com/52why/p/7461460.html