Submission #1235234

#TimeUsernameProblemLanguageResultExecution timeMemory
1235234AishaCostinland (info1cup19_costinland)C++20
0 / 100
0 ms324 KiB
#include "bits/stdc++.h"

using namespace std;

#define int long long

int n = 49;
vector <vector <char>> g(n + 1, vector <char> (n + 1, '.'));
vector <pair <int, pair <int, int>>> d;

void make_g() {
    g[1][1] = 'X';
    for (int i = 1; i <= n; i ++) g[n][i] = 'r';
    for (int i = 1; i <= n; i ++) g[i][n] = 'd';

    int i = 2;
    while (i + 2 <= n) {
        g[i][i] = g[i][i + 1] = g[i + 1][i] = g[i + 1][i + 1] = 'X';
        g[i + 2][i] = g[i + 2][i + 1] = 'r';
        g[i][i + 2] = g[i + 1][i + 2] = 'd';

        i += 2;
    }
}

void make_d() {
    int c = 1;
    for (int i = 49; i >= 3; i --) {
        d.push_back({c, {1, i - 1}});
        d.push_back({c, {i - 1, 1}});
        if (i % 2) c *= 3;
        else c *= 2;
    }
    reverse(d.begin(), d.end());
}

void ans_g(int k) {
    for (auto [c, p] : d) {
        if (k >= c) {
            k -= c;
            g[p.first][p.second] = 'X';
        } 
    }
}

signed main() {
    int k;
    cin >> k;

    make_g();
    make_d();
    ans_g(k - 2);

    cout << "49 49" << endl;
    for (int i = 1; i <= n; i ++) {
        for (int j = 1; j <= n; j ++) {
            cout << g[i][j];
        }
        cout << endl;
    }

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...