zoukankan      html  css  js  c++  java
  • 2019中山大学程序设计竞赛 Enlarge it(水题)

    Problem Description
    Taotao is glad to see that lots of students have registered for today's algorithm competition. Thus he wants to pull a banner on the wall. But Taotao is so stupid that he doesn't even know how to enlarge words to fit the size of banner. So Taotao gives you a slogan template and asked you to enlarge them in k times.
     
    Input
    There are multiple test cases.
    For each test case, first line contains three numbers n, m, k (1<=n, m<=100,1<=k<=10).
    The next n lines each contain m visible characters.
     
    Output
    For each test case, you should output k*n lines each contain k*m visible characters to represent the expanded slogan.
     
    Sample Input
    3 3 2
    .*.
    .*.
    .*.
     
    Sample Output
    ..**..
    ..**..
    ..**..
    ..**..
    ..**..
    ..**..
    #include <cstdio>
    #include <iostream>
    #include <vector>
    #include <string>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    #include <queue>
    using namespace std;
    #define ll long long
    const int inf = 0x3f3f3f3f;
    const  ll linf  =1LL<<50;
    const int maxn = 1e5+8;
    const ll lmaxn = 2*1e9+8;
    const ll mod = 1000000007;
    int sign[10000+8];
    char a[100+8][100+8];
    int n, m, k;
    int main()
    {
        while(~scanf("%d%d%d", &n, &m, &k) && (n+m+k))
        {
            getchar();
            int cnt = 0;
            for(int i = 1; i<=n; i++)
            {
                for(int j = 1; j<=m; j++)
                {
                    scanf("%c", &a[i][j]);
                    if(j>1 && a[i][j] != a[i][j-1])
                    {
                        sign[cnt++] = j-1;
    //                    cout<<sign[cnt-1]<<endl;
                    }
                    if(j == m)
                    {
                        sign[cnt++] = j;
    //                    cout<<sign[cnt-1]<<endl;
                    }
                }
                getchar();
            }
            int miao = 0, ying = 0;;
            for(int i = 1; i <= n; i++)
            {
                for(int j = 1; j <= m*k; j++)
                {
                    printf("%c",a[i][sign[miao]]);
                    if(j == sign[miao]*2)
                    {
                        miao++;
                    }
                }
                printf("
    ");
                for(int j = 1; j <= m*k; j++)
                {
                    printf("%c",a[i][sign[ying]]);
                    if(j == sign[ying]*2)
                    {
                        ying++;
                    }
                }
                printf("
    ");
            }
        }
        return 0;
    }
  • 相关阅读:
    洛谷 P1291 [SHOI2002]百事世界杯之旅 解题报告
    洛谷 P1338 末日的传说 解题报告
    洛谷 P3952 时间复杂度 解题报告
    vector-erase
    STL之--插入迭代器(back_inserter,inserter,front_inserter的区别
    STL之--插入迭代器(back_inserter,inserter,front_inserter的区别
    vector-end
    vector-end
    vector-empty
    vector-empty
  • 原文地址:https://www.cnblogs.com/RootVount/p/10741494.html
Copyright © 2011-2022 走看看