---
# System prepended metadata

title: 'e639: 10324 - Zeros and Ones'
tags: [Zerojudge]

---

# e639: 10324 - Zeros and Ones
題目連結：[e639](https://zerojudge.tw/ShowProblem?problemid=e639)

我的程式解法是 掃描並逐次比對 aka暴力解
也就是 第i項 與 第i+1項 逐次比較到n
然後一些要注意的：
1. 題目的 min & max 可能會顛倒放，需要額外判斷
2. 如果在比對中有一項錯誤，就可以直接 break 節省時間
3. 輸出的格式

這樣時間複雜度 BigO(n)
應該是最費時的
但是還是 AC =.=

額外的判斷
```c=
if(min>max){
	temp=min;
    min=max;
	max=temp;
}
```
逐次判斷
最後輸出字串是一樣的
````c=
for(i=min;i<max;i++){
    if(c[i]!=c[i+1]){
        printf("No\n");
        check=0;
        break;
    }else{
        check=1;
    }
}
if(check==1){
    printf("Yes\n");
}
````

全程式碼：
```c=
#include<stdio.h>
char c[1000000];

int main(){
	int tim=1;
	while(scanf("%s",c)!=EOF){
		int num,r,min,max,check=1,i,temp;
		scanf("%d",&num);
		printf("Case %d:\n",tim);
		for(r=0;r<num;r++){
			scanf("%d%d",&min,&max);
			if(min>max){
				temp=min;
				min=max;
				max=temp;
			}
			for(i=min;i<max;i++){
				if(c[i]!=c[i+1]){
					printf("No\n");
					check=0;
					break;
				}else{
					check=1;
				}
			}
			if(check==1){
				printf("Yes\n");
			}
		}
		tim+=1;
	}
	return 0;
}
```