(本套题算是比较温和吧,就是罚时有点高。

B .Baby Bites

题意:给出一个婴儿给出的数组,有一些数字听不清楚,让你还原,问它是否是一个从1开始的一次增加的数组。

思路:从左往右依次固定,看是否有矛盾即可。

#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define rep2(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
int a[1100]; char c[10];
int main()
{
    int N; bool F=true;
    scanf("%d",&N);
    rep(i,1,N) {
        scanf("%s",c+1);
        if(c[1]=='m') a[i]=-1;
        else {
            int L=strlen(c+1);
            rep(j,1,L) a[i]=a[i]*10+c[j]-'0';
        }
    }
    if(a[1]==-1) a[1]=1;
    if(a[1]!=1) F=false;
    rep(i,1,N) {
        if(a[i]==-1&&a[i-1]!=-1) a[i]=a[i-1]+1;
        if(a[i]!=-1&&a[i-1]!=-1)
          if(a[i]!=a[i-1]+1) F=false;
    }
    if(F) puts("makes sense");
    else puts("something is fishy");
    return 0;
}
View Code

相关文章: