---
# System prepended metadata

title: h035 夜市

---

# h035 夜市
## [題目連結](https://drive.google.com/open?id=1IPca4ftc7jrqllxXDpJDT2uOTWncqvKn)
## 解題想法
* 用數字區別格子狀態(未命中、倒下、倒下後又升起)。
* 若達成全清，直接結束並輸出。
* 總分於最後以格子狀態計算。
## 遭遇到的困難
* 使格子升起和投球之間順序相反。
* 未讀懂題意誤解總分計算方式。
## 程式碼
```cpp=01
#include<stdio.h>
int main(){
	int hit[9],i,j,n,ful=0;
	scanf("%d",&n);
	for(i=0;i<9;i++)hit[i]=0;
	int score[300],ans=0;
	for(i=0;i<n;i++)scanf("%d",&score[i]);
	for(i=0;i<n;i++){
		if(score[i]>0&&score[i]<10&&hit[score[i]-1]!=1){
			hit[score[i]-1]=1;
			if(i>=8){
				ful=1;
				for(j=0;j<9;j++){
					if(hit[j]!=1){
						ful=0;
						break;
					}
				}
			}
			if(ful==1)break;
		}
		if(i>=11)hit[score[i-11]-1]=2;
	}
	for(i=0;i<9;i++){
		if(hit[i]!=0)ans+=i+1;
	}
	if(ful==1)printf("perfect");
	else printf("%d",ans);
	return 0;
}