Cod sursa(job #2770775)

Utilizator MateiAruxandeiMateiStefan MateiAruxandei Data 23 august 2021 10:30:45
Problema Dame Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin("dame.in");
ofstream fout("dame.out");

vector<pair<int, int> > afis;
const int NMAX(1005);
bool mat[NMAX][NMAX], lib[NMAX], lib2[NMAX];
int n;
void work(int x, int y)
{
    while(x <= n && y <= n)
    {
        if(mat[x][y] == 1)
            break;
        if(lib[y] == 0 && lib2[x] == 0)
        {
            afis.push_back({x, y});
            lib[y] = 1;
            lib2[x] = 1;
            break;
        }
        ++x, ++y;
    }
}
int main()
{
    fin >> n;
    int i, j;
    if(n % 2 == 1)
        i = n, j = 1;
    else i = n - 1, j = 1;
    afis.push_back({i, j});
    lib[j] = 1;
    lib2[i] = 1;
    while(i != 1)
    {
        i -= 2;
        j++;
        afis.push_back({i, j});
        lib[j] = 1;
        lib2[i] = 1;
    }
    for(int i = n; i >= 1; --i)
    {
        work(i, 1);
        work(1, i);
    }
    fout << n << '\n';
    for(auto it: afis)
        fout << it.first << ' ' << it.second << '\n';
    return 0;
}