新手守护
1213 数字消消乐经验值:0
题目描述 Description
小C喜欢玩游戏,有一天他在电脑上发现了一个叫“数字消消乐”的游戏,其规则如下:
给定一个长度为N的整型数组(正整数),指定一个数a,如果该数组中有3个及3个以上的a连续出现,则该数字将会从数组中消除。小C突然想到可以用编程来解题,请聪明的你帮小C编程实现该功能。
输入描述 Input Description
输入为2行:
第一行为2个整数,分别代表数组长度N以及需要消除的数字a,中间用一个空格隔开;
(其中N≤100)
第二行为N个正整数,每个正整数之间用单个空格隔开。
输出描述 Output Description
输出为1行,表示消除所有数字a之后的新整型数组,每个数之间用单个空格隔开。
样例输入 Sample Input
30 3 16 22 15 3 3 3 5 10 27 18 3 3 3 3 3 21 2 29 3 3 17 3 3 3 3 3 3 26 28 30
样例输出 Sample Output
16 22 15 5 10 27 18 21 2 29 3 3 17 26 28 30
#include<iostream>
using namespace std;
int a[105],cnt;
int main(){
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=n;i++){
if(a[i]==m){
cnt++;
}
if(a[i]!=m){
if(cnt>=3){
while(cnt!=0){
a[i-cnt]=0;
cnt--;
}
}
else{
cnt=0;
}
}
}
for(int i=1;i<=n;i++){
if(a[i]!=0){
cout<<a[i]<<" ";
}
}
return 0;
}
新手启示者
int n,t,a[111];
bool b[111];
int main(){
cin>>n>>t;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=3;i<=n;i++){
if(a[i]==t&&a[i-1]==t&&a[i-2]==t){
b[i]=b[i-1]=b[i-2]=true;
}
}
for(int i=1;i<=n;i++){
if(!b[i]){
cout<<a[i]<<" ";
}
}