Cod sursa(job #2338279)

Utilizator triscacezarTrisca Vicol Cezar triscacezar Data 7 februarie 2019 11:37:49
Problema Dame Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.6 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("dame.in");
ofstream g("dame.out");

int n,i,j;
int a[1010][1010];
vector<pair<int,int> > ans;

int main()
{
    f>>n;
    if(n==2)
    {
        g<<1<<'\n'<<"1 1";
        return 0;
    }
    if(n==3)
    {
        g<<2<<'\n'<<"1 1\n"<<"3 2";
        return 0;
    }
    if(n%6==1||n%6==5)
        for(i=1,j=1; i<=n; i++,j+=2)
        {
            if(j>n)
                j=2;
            a[i][j]=1;
            ans.push_back({i,j});
        }
    if(n%6==0||n%6==4)
        for(i=1,j=2; i<=n; i++,j+=2)
        {
            if(j>n)
                j=1;
            a[i][j]=1;
            ans.push_back({i,j});
        }
    if(n%6==3)
    {
        for(i=1,j=2;;i++,j+=2)
        {
//            if(j>n)j=3;
//            a[i][j]=1;
//            ans.push_back({i,j});
        }
        a[n][1]=1;
        ans.push_back({n,1});
    }
    if(n%6==2)
    {
        int x;
        for(i=1,x=2; x<=n; x+=2,i++)
        {
            a[i][x]=1;
            ans.push_back({i,x});
        }
        a[i][3]=1;
        ans.push_back({i,3});
        i++;
        a[i][1]=1;
        ans.push_back({i,1});
        for(i++,x=7; x<=n; x+=2, i++)
        {
            a[i][x]=1;
            ans.push_back({i,x});
        }
        a[i][5]=1;
        ans.push_back({i,5});
    }
    g<<ans.size()<<'\n';
    for(auto it:ans)
        g<<it.first<<' '<<it.second<<'\n';
//    for(i=1; i<=n; i++)
//    {
//        for(j=1; j<=n; j++)
//            g<<a[i][j]<<' ';
//        g<<'\n';
//    }
    return 0;
}