Cod sursa(job #311712)

Utilizator ViksenVictor-Nicolae Savu Viksen Data 3 mai 2009 23:50:07
Problema Dame Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.63 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

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

    int n;

    fin>>n;
    fin.close();

    vector<int> V;

    if(n==1 || n==2)
        fout<<"1\n1 1\n";
    else
        if(n==3) {
            fout<<"2\n1 1\n2 3\n";
        }
        else {

            if(n%12 == 3 || n%12 ==9) {
                for(int i=4; i<=n; i+=2)
                    V.push_back(i);
                V.push_back(2);
                for(int i=5; i<=n; i+=2)
                    V.push_back(i);
                V.push_back(1);
                V.push_back(3);
            }
            else
            {
                for(int i=2; i<=n; i+=2)
                    V.push_back(i);
                switch(n%12) {
                    case 2:
                        V.push_back(3);
                        V.push_back(1);
                        for(int i=7; i<=n; i+=2)
                            V.push_back(i);
                        V.push_back(5);
                        break;
                    case 8:
                        for(int i=0; i<n/2; i++) {
                            V.push_back(i*4+3);
                            V.push_back(i*4+1);
                        }
                        break;
                    default:
                        for(int i=1; i<=n; i+=2)
                            V.push_back(i);
                }
            }


            fout<<n<<'\n';
            for(int i=0; i<n; i++)
                fout<<i+1<<' '<<V[i]<<'\n';
        }
    fout.close();
    return 0;
}