Codeforces Round #279 (Div. 2) E

来源:互联网 发布:以色列 巴勒斯坦 知乎 编辑:程序博客网 时间:2024/06/05 07:29

2014/11/25


我果然是沙比,一个break没加。。。。

模拟真的不是我的菜。


#include<stdio.h>#include<string.h>#include<iostream>using namespace std;char s[100005][10];int main(){    int n;    while(~scanf("%d",&n))    {        int temp = 0;        s[0][0] = '0';        for(int i = 1;i <= n; i++)        {            scanf("%s",s[i]);        }                for(int i = 1;i <= n ; i++)        {            int len1 = strlen(s[i-1]);            int len = strlen(s[i]);            if(len > len1)            {                for(int j = 0;j < len; j++)                {                    if(s[i][j]=='?'&&j==0)s[i][j]='1';                    else if(s[i][j]=='?')                       s[i][j]='0';                }            }            else if(len < len1)            {                temp = 1;                break;            }            else            {                char a[10]="-";                for(int j = 0;j < len; j++)                {                    if(s[i][j]=='?')                    {                        if(s[i-1][j]!='9')                        {                            s[i][j] = s[i-1][j]+1;                                                        for(int k = 0;k < len; k++)                            {                                if(s[i][k]=='?')a[k]='0';                                else a[k] = s[i][k];                            }                                                    }                        s[i][j] = s[i-1][j];                    }                    else                    {                    if(s[i][j] > s[i-1][j])                    {                           for(int k = 0;k < len; k++)                            {                                if(s[i][k]=='?')a[k]='0';                                else a[k] = s[i][k];                            }                            break;                    }                    if(s[i][j] < s[i-1][j])                    {                        break;                    }                    }                                   }                            if(strcmpi(a,"-")==0)                {                    temp = 1;                    break;                }                else strcpy(s[i],a);                            }        }                if(temp)        {            printf("NO\n");        }        else        {            printf("YES\n");            for(int i = 1;i <=n ;i++)            printf("%s\n",s[i]);        }            }    return 0;}


0 0
原创粉丝点击