Cod sursa(job #760097)

Utilizator belginstirbuasdf asdf belginstirbu Data 20 iunie 2012 09:45:45
Problema Dame Scor 35
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <fstream>

int main(void)
{
    unsigned int N;
    
    std::ifstream in("dame.in");
    in >> N;
    in.close();
    
    unsigned int *arr = new unsigned int [N];
    unsigned int index = 0;
    
    if(N % 12 == 3 || N % 12 == 9)
    {
        for(unsigned int i = 4; i <= N; i += 2, ++index)
            arr[index] = i;
        arr[index++] = 2;
        
        for(unsigned int i = 5; i <= N; i+= 2, ++index)
            arr[index] = i;
        arr[index++] = 1;
        arr[index] = 3;
    }
    else
    {
        for(unsigned int i = 2; i <= N; i += 2, ++index)
            arr[index] = i;
        
        if(N % 12 == 8)
            for(unsigned int i = 1; i <= N; i += 4)
            {
                arr[index + 1] = i;
                arr[index] = i + 2;
                index += 2;
            }
        
        if(N % 12 == 2)
        {
            arr[index + 1] = 1;
            arr[index] = 3;
            for(unsigned int i = 7; i <= N; ++i, ++index)
                arr[index] = i;
            arr[index] = 5;
        }
    }
    
    std::ofstream out("dame.out");
    
    out << N << '\n';
    for(unsigned int index = 0; index < N; ++index)
        out << index + 1 << ' ' << arr[index] << '\n';
    out.close();
    
    return 0;
}