Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream fin("ghem.in");
- ofstream fout("ghem.out");
- int main() {
- fin.sync_with_stdio(false);
- fout.sync_with_stdio(false);
- fin.tie(nullptr);
- fout.tie(nullptr);
- int n, X, Y;
- char D;
- fin >> n >> X >> Y >> D;
- vector < vector < int > > a(n + 1, vector < int >(n + 1));
- for(int i = 1; i <= n; ++i)
- for(int j = 1; j <= n; ++j)
- a[i][j] = (i - 1) * n + j;
- if(X == 1 && Y == 1) {
- if(D == 'O') {
- int x = 1;
- while(x <= n / 2) {
- for(int j = x; j <= n - x; ++j)
- fout << a[x][j] << ' ';
- for(int i = x; i <= n - x; ++i)
- fout << a[i][n - x + 1] << ' ';
- for(int j = n - x + 1; j > x; --j)
- fout << a[n - x + 1][j] << ' ';
- for(int i = n - x + 1; i > x; --i)
- fout << a[i][x] << ' ';
- ++x;
- }
- if(n & 1)
- fout << a[n / 2 + 1][n / 2 + 1];
- }
- else {
- int x = 1;
- while(x <= n / 2) {
- for(int j = x; j <= n - x; ++j)
- fout << a[j][x] << ' ';
- for(int i = x; i <= n - x; ++i)
- fout << a[n - x + 1][i] << ' ';
- for(int j = n - x + 1; j > x; --j)
- fout << a[j][n - x + 1] << ' ';
- for(int i = n - x + 1; i > x; --i)
- fout << a[x][i] << ' ';
- ++x;
- }
- if(n & 1)
- fout << a[n / 2 + 1][n / 2 + 1];
- }
- }
- else
- if(X == 1 && Y == n) {
- if(D == 'O') {
- int x = 1;
- while(x <= n / 2) {
- for(int j = n - x + 1; j >= x; --j)
- fout << a[x][j] << ' ';
- for(int i = x + 1; i <= n - x + 1; ++i)
- fout << a[i][x] << ' ';
- for(int j = x + 1; j <= n - x + 1; ++j)
- fout << a[n - x + 1][j] << ' ';
- for(int i = n - x; i > x; --i)
- fout << a[i][n - x + 1] << ' ';
- ++x;
- }
- if(n & 1)
- fout << a[n / 2 + 1][n / 2 + 1];
- }
- else {
- int x = 1;
- while(x <= n / 2) {
- for(int j = x; j <= n - x + 1; ++j)
- fout << a[j][n - x + 1] << ' ';
- for(int j = n - x; j >= x; --j)
- fout << a[n - x + 1][j] << ' ';
- for(int j = n - x; j >= x; --j)
- fout << a[j][x] << ' ';
- for(int j = x + 1; j <= n - x; ++j)
- fout << a[x][j] << ' ';
- ++x;
- }
- if(n & 1)
- fout << a[n / 2 + 1][n / 2 + 1];
- }
- }
- else
- if(X == n && Y == 1) {
- if(D == 'O') {
- int x = 1;
- while(x <= n / 2) {
- for(int j = x; j <= n - x + 1; ++j)
- fout << a[n - x + 1][j] << ' ';
- for(int i = n - x; i >= x; --i)
- fout << a[i][n - x + 1] << ' ';
- for(int i = n - x; i >= x; --i)
- fout << a[x][i] << ' ';
- for(int j = x + 1; j <= n - x; ++j)
- fout << a[j][x] << ' ';
- ++x;
- }
- if(n & 1)
- fout << a[n / 2 + 1][n / 2 + 1];
- }
- else {
- int x = 1;
- while(x <= n / 2) {
- for(int j = n - x + 1; j >= x; --j)
- fout << a[j][x] << ' ';
- for(int i = x + 1; i <= n - x + 1; ++i)
- fout << a[x][i] << ' ';
- for(int j = x + 1; j <= n - x + 1; ++j)
- fout << a[j][n - x + 1] << ' ';
- for(int i = n - x; i > x; --i)
- fout << a[n - x + 1][i] << ' ';
- ++x;
- }
- if(n & 1)
- fout << a[n / 2 + 1][n / 2 + 1];
- }
- }
- else {
- if(D == 'O') {
- int x = 1;
- while(x <= n / 2) {
- for(int j = n - x + 1; j >= x; --j)
- fout << a[n - x + 1][j] << ' ';
- for(int i = n - x; i >= x; --i)
- fout << a[i][x] << ' ';
- for(int j = x + 1; j <= n - x + 1; ++j)
- fout << a[x][j] << ' ';
- for(int i = x + 1; i <= n - x; ++i)
- fout << a[i][n - x + 1] << ' ';
- ++x;
- }
- if(n & 1)
- fout << a[n / 2 + 1][n / 2 + 1];
- }
- else {
- int x = 1;
- while(x <= n / 2) {
- for(int j = n - x + 1; j >= x; --j)
- fout << a[j][n - x + 1] << ' ';
- for(int i = n - x; i >= x; --i)
- fout << a[x][i] << ' ';
- for(int j = x + 1; j <= n - x + 1; ++j)
- fout << a[j][x] << ' ';
- for(int i = x + 1; i <= n - x; ++i)
- fout << a[n - x + 1][i] << ' ';
- ++x;
- }
- if(n & 1)
- fout << a[n / 2 + 1][n / 2 + 1];
- }
- }
- }
Add Comment
Please, Sign In to add comment