牛客网——B 遥远的记忆
链接:https://ac.nowcoder.com/acm/contest/9033/B
来源:牛客网
很久很久以前的idea.
给你一个序列c,长度为n。
现在有一个序列a,长度为n。
对于:
如果c i =0 并且i>1那么 a i =a i−1。
如果c i =1并且i<n那么 a i=a i+1 。
现在求序列a中最多有多少种不同的数字。
输入描述:
第一行,一个正整数n。
第二行,n个整数,c_ic i .
输出描述:
一个数,表示答案。
示例1
输入
9
1 0 1 1 1 0 0 0 1
输出
3
正确代码:
#include<iostream>
#include<stdio.h>
#include<map>
using namespace std;
int main(){
int n;
while(cin>>n){
map<int,int>mp;
int ans=0;
int c[n+5];
for(int i=1;i<=n;i++){
cin>>c[i];
}
for(int i=1;i<=n;i++){
if(c[i]==0&&(c[i+1]==1)){
ans++;
}
}
cout<<ans+1<<endl;
}
return 0;
}