View Code of Problem 3311

#include<iostream>
#include<string>
#include<cmath>
#include<cstring>
#include<vector>
#include<iomanip>
#include<cstdio>
#include<algorithm>
#include<ctype.h>
using namespace std;
char a[1000][1000];
int main()
{
	int n, m;
	cin >> n >> m;
	int level = n / 2 + n % 2;
	int cnt = 0;
	for (int i = 0;i < level;i++)
	{
		for (int j = i;j <= m-i-1&&cnt<=n*m-1;j++)
		{
			a[i][j] = char('A' + cnt%26);
			cnt++;
		}
		for (int j = i+1;j <= n - i-2 && cnt <= n * m - 1;j++)
		{
			a[j][m-i-1] = char('A' + cnt % 26);
			cnt++;
		}
		for (int j = m-i-1;j >=i && cnt <= n * m - 1;j--)
		{
			a[n-i-1][j] = char('A' + cnt % 26);
			cnt++;
		}
		for (int j = n-i-2;j >=i+1 && cnt <= n * m - 1;j--)
		{
			a[j][i] = char('A' + cnt % 26);
			cnt++;
		}
	}
	for (int i = 0;i < n;i++)
	{
		for (int j = 0;j < m;j++)
			cout <<setw(4)<<setfill(' ')<< a[i][j];
		cout << endl;
	}
}

Double click to view unformatted code.


Back to problem 3311