Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- vector <vector<char>> a(1001, vector<char>(1001, '.'));
- int c = 0;
- int i = 500, j = 500;
- bool fillmas(int d, int w, int n) {
- while (d > 0) {
- if (w == 0) {
- j++;
- a[i][j] = '*';
- c++;
- }
- else if (w == 1) {
- i--;
- a[i][j] = '*';
- c++;
- }
- else if (w == 2) {
- j--;
- a[i][j] = '*';
- c++;
- }
- else {
- i++;
- a[i][j] = '*';
- c++;
- }
- if (c == n)
- return false;
- d--;
- }
- return true;
- }
- int main() {
- int n, d, k;
- cin >> n >> d >> k;
- a[500][500] = '*';
- int round = 0;
- while (fillmas(d, round % 4, n)) {
- round++;
- if (!fillmas(d, round % 4, n))
- break;
- d *= k;
- round++;
- }
- int l = -1, r = -1, t = -1, b = -1;;
- for (int j = 0; j < 1001; j++) {
- for (int i = 0; i < 1001; i++)
- if (a[i][j] == '*') {
- l = j;
- break;
- }
- if (l != -1)
- break;
- }
- for (int i = 1000; i > -1; i--) {
- for (int j = 0; j < 1001; j++)
- if (a[i][j] == '*') {
- b = i ;
- break;
- }
- if (b != -1)
- break;
- }
- for (int i = 0; i < 1001; i++) {
- for (int j = 0; j < 1001; j++)
- if (a[i][j] == '*') {
- t = i;
- break;
- }
- if (t != -1)
- break;
- }
- for (int j = 1000; j > -1; j--) {
- for (int i = 1000; i > -1; i--)
- if (a[i][j] == '*') {
- r = j;
- break;
- }
- if (r != -1)
- break;
- }
- for (int i = t; i < b + 1; i++) {
- for (int j = l; j < r + 1; j++)
- cout << a[i][j];
- cout << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement