(本套题算是比较温和吧,就是罚时有点高。
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; }