結果

提出番号 1875
提出者 olphe
言語 C++
提出日時 2018-08-04 14:19:11
問題名 (65)Small Grid and Score
結果 AC
点数 38%

テストケース

テストケース 結果 得点 実行時間 メモリ使用量
1 AC 30% 2ms 7888KB
2 AC 30% 2ms 8032KB
3 AC 30% 2ms 8464KB
4 AC 30% 2ms 8432KB
5 AC 30% 1ms 8656KB
6 AC 30% 2ms 8240KB
7 AC 30% 2ms 8704KB
8 AC 30% 2ms 8064KB
9 AC 30% 2ms 8400KB
10 AC 30% 2ms 8448KB
11 AC 30% 2ms 7248KB
12 AC 30% 2ms 8192KB
13 AC 30% 2ms 8416KB
14 AC 30% 1ms 7824KB
15 AC 92% 2ms 8448KB
16 AC 30% 2ms 8016KB
17 AC 30% 2ms 8384KB
18 AC 30% 2ms 8432KB
19 AC 30% 2ms 7840KB
20 AC 30% 2ms 8688KB
21 AC 30% 2ms 7904KB
22 AC 30% 2ms 8048KB
23 AC 30% 1ms 7904KB
24 AC 30% 2ms 8688KB
テストケース 結果 得点 実行時間 メモリ使用量
25 AC 30% 1ms 8080KB
26 AC 30% 2ms 7632KB
27 AC 30% 2ms 8096KB
28 AC 30% 2ms 8096KB
29 AC 30% 2ms 8416KB
30 AC 30% 2ms 8064KB
31 AC 30% 2ms 7920KB
32 AC 30% 2ms 7248KB
33 AC 30% 2ms 8400KB
34 AC 30% 2ms 8128KB
35 AC 30% 2ms 8448KB
36 AC 30% 1ms 8720KB
37 AC 30% 2ms 7824KB
38 AC 30% 2ms 8448KB
39 AC 30% 2ms 8720KB
40 AC 30% 1ms 8064KB
41 AC 30% 2ms 8448KB
42 AC 30% 2ms 7648KB
43 AC 30% 2ms 7936KB
44 AC 30% 2ms 7216KB
45 AC 30% 2ms 8304KB
46 AC 30% 2ms 8704KB
47 AC 30% 2ms 7248KB
48 AC 30% 2ms 8416KB
49 AC 30% 2ms 7472KB
50 AC 30% 2ms 8416KB
51 AC 30% 2ms 8448KB
52 AC 30% 2ms 8608KB
53 AC 30% 2ms 8432KB
54 AC 30% 2ms 8256KB
55 AC 30% 2ms 8176KB
56 AC 30% 2ms 7248KB
57 AC 30% 2ms 8688KB
58 AC 30% 1ms 8464KB
59 AC 30% 2ms 8064KB
60 AC 30% 2ms 8016KB
61 AC 30% 2ms 8016KB
62 AC 30% 2ms 7232KB
63 AC 30% 2ms 8064KB
64 AC 30% 2ms 8432KB
65 AC 30% 2ms 8000KB
66 AC 30% 1ms 8224KB
67 AC 30% 2ms 8688KB
68 AC 30% 2ms 7824KB
69 AC 30% 2ms 8688KB
70 AC 30% 2ms 7824KB
71 AC 30% 2ms 7808KB
72 AC 30% 2ms 8368KB
73 AC 30% 2ms 8416KB
74 AC 30% 2ms 8096KB
75 AC 30% 2ms 8400KB
76 AC 30% 2ms 8672KB
77 AC 30% 2ms 8672KB
78 AC 30% 2ms 7840KB
79 AC 30% 1ms 8480KB
80 AC 30% 2ms 8432KB
81 AC 30% 2ms 8304KB
82 AC 30% 2ms 8704KB
83 AC 30% 2ms 8720KB
84 AC 30% 2ms 7808KB
85 AC 30% 2ms 7536KB
86 AC 30% 2ms 8256KB
87 AC 30% 2ms 7728KB
88 AC 30% 2ms 8160KB
89 AC 30% 2ms 7648KB
90 AC 30% 2ms 7488KB
91 AC 30% 1ms 8112KB
92 AC 30% 2ms 8128KB
93 AC 30% 2ms 8048KB
94 AC 30% 2ms 8640KB
95 AC 30% 2ms 8432KB
96 AC 30% 2ms 7600KB
97 AC 30% 2ms 8128KB
98 AC 30% 2ms 8432KB
99 AC 30% 2ms 8048KB
100 AC 30% 2ms 8656KB
101 AC 30% 2ms 8688KB
102 AC 30% 2ms 7808KB
103 AC 30% 2ms 8432KB
104 AC 30% 2ms 8448KB
105 AC 30% 2ms 8672KB
106 AC 30% 1ms 7728KB
107 AC 30% 2ms 8384KB
108 AC 30% 2ms 8192KB
109 AC 30% 2ms 8240KB
110 AC 30% 2ms 8448KB
111 AC 30% 2ms 8384KB
112 AC 30% 1ms 7920KB
113 AC 30% 2ms 8720KB
114 AC 30% 2ms 8720KB
115 AC 30% 2ms 7792KB
116 AC 30% 1ms 8736KB
117 AC 30% 2ms 8400KB
118 AC 30% 2ms 8144KB
119 AC 30% 2ms 7968KB
120 AC 30% 2ms 8704KB
121 AC 30% 1ms 7904KB
122 AC 30% 1ms 8096KB
123 AC 30% 1ms 8688KB
124 AC 30% 2ms 7824KB

ソースコード

#include "iostream"
#include "climits"
#include "list"
#include "queue"
#include "stack"
#include "set"
#include "functional"
#include "algorithm"
#include "string"
#include "map"
#include "unordered_map"
#include "unordered_set"
#include "iomanip"
#include "cmath"
#include "random"
#include "bitset"
#include "cstdio"

using namespace std;

const long long int MOD = 1000000007;
const long double EPS = 1e-8;

long long int N, M, K, H, W, L, R;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);

	N = 18;
	cin >> M;
	if (!M) {
		cout << 1 << " " << 1 << endl;
		cout << "#" << endl;
		return 0;
	}
	vector<vector<long long int>>v(N, vector<long long int>(N));
	for (int i = 0; i < N; i++) {
		v[i][0] = 1;
		v[0][i] = 1;
	}
	for (int i = 1; i < N; i++) {
		for (int j = 1; j < N; j++) {
			v[i][j] = v[i][j - 1] + v[i - 1][j];
		}
	}
	K = M / v[17][17];
	vector<string>ans(36);
	for (int i = 0; i < 36; i++) {
		ans[i].resize(36, '.');
	}
	if (K) {
		for (int i = 34; i >= 18; i--) {
			if (K % 2 && K > 2) {
				ans[35][i] = '1';
				K--;
			}
			else if (K >= 2) {
				ans[35][i] = '2';
				K /= 2;
			}
		}
		for (int i = 34; i >= 0; i--) {
			if (K % 2 && K > 2) {
				for (int j = 0; j < 18; j++) {
					for (int k = 0; k < 18; k++) {
						if (i == j + k) {
							ans[j + 18][k] = '1';
						}
					}
				}
				K--;
			}
			else if (K >= 2) {
				for (int j = 0; j < 18; j++) {
					for (int k = 0; k < 18; k++) {
						if (i == j + k) {
							ans[j + 18][k] = '2';
						}
					}
				}
				K /= 2;
			}
		}
		for (int i = 17; i > 0; i--) {
			if (K % 2 && K > 2) {
				ans[i][0] = '1';
				K--;
			}
			else if (K >= 2) {
				ans[i][0] = '2';
				K /= 2;
			}
		}
	}
	else {
		ans[1][0] = '#';
	}
	for (int i = 1; i < 18; i++) {
		ans[1][i] = '#';
		ans[i][18] = '#';
		ans[17][i] = '#';
	}
	for (int i = 18; i < 35; i++) {
		ans[1][i] = '#';
		ans[i][18] = '#';
		ans[34][i] = '#';
	}
	K = M % v[17][17];
	if (K) {
		for (int i = 34; i >= 0; i--) {
			if (K % 2 && K > 2) {
				ans[i][35] = '1';
				K--;
			}
			else if (K > 1) {
				ans[i][35] = '2';
				K /= 2;
			}
		}
		for (int i = 34; i > 0; i--) {
			if (K % 2 && K > 2) {
				ans[0][i] = '1';
				K--;
			}
			else if (K > 1) {
				ans[0][i] = '2';
				K /= 2;
			}
		}
	}
	else {
		ans[0][1] = '#';
	}
	cout << 36 << " " << 36 << endl;
	for (auto i : ans) {
		cout << i << endl;
	}
	return 0;
}