CodeForce VKcup B

题目描述:给了n个单词和m,还有一堆YES和NO表示在序列1-m,2-(m+1),3-(m+2)......中是否存在重复的单词,没重复的是YES,有重复的是NO

题目链接:点我

如果是NO的话,就使最后一个单词和第一个单词相同,如果是YES的话就按照顺序添加

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
using namespace std;
#define MOD 1000000007
const int INF=0x3f3f3f3f;
const double eps=1e-5;
typedef long long ll;
#define cl(a) memset(a,0,sizeof(a))
#define ts printf("
*****
");
#define sc(a) scanf("%d",&a);
#define pt(a) printf("%d
",a);
#define ptn printf("
");
const int MAXN=100;
int n,m,tt;
char s[MAXN][20],ss[MAXN];
int main()
{
    int i,j,k,ca=1;
    while(scanf("%d%d",&n,&m)!=EOF){
        char sbegin[10]="Aa";
        strcpy(s[0],"Aa");
        char p1='A';
        char p2='a';
        for(i=1;i<m-1;i++){
            p2++;
            if(p2==('z'+1))  p2='a',p1++;
            s[i][0]=p1;
            s[i][1]=p2;
        }
        for(i=-1;i<n-m;i++){
            scanf("%s",ss);
            if(strcmp(ss,"YES")==0){
                p2++;
                if(p2=='z'+1)  p2='a',p1++;
                s[i+m][0]=p1;
                s[i+m][1]=p2;
            }
            else if(strcmp(ss,"NO")==0){
                    strcpy(s[i+m],sbegin);
            }
            strcpy(sbegin,s[i+2]);
        }
        for(i=0;i<n;i++){
            printf("%s ",s[i]);
        }
        ptn
    }
}
原文地址:https://www.cnblogs.com/cnblogs321114287/p/6582986.html