2015年6月5日 星期五

2015/06/05 Codeforces 550D. Regular Bridge

/*
    非常有趣的題目!
*/
// http://codeforces.com/problemset/problem/550/D
#include <iostream>
#include <cstdio>

using namespace std;

int N;

int main()
{
    scanf("%d", &N);

    if( N%2 == 0 ) puts("NO");
    else if( N == 1 )
    {
        puts("YES");
        puts("2 1");
        puts("1 2");
    }
    else
    {
        puts("YES");
        printf("%d %d\n", (N+2)*2, (N+2)*N);

        printf("%d %d\n", N+2, N+3);

        for(int i = 2; i < N+2; i++)
        {
            printf("%d %d\n", 1, i);
            printf("%d %d\n", N*2+5-1, N*2+5-i);
        }

        for(int i = 2; i <= N+2; i++)
            for(int j = i+1; j <= N+2; j++)
            {
                if( i+j != N+2+2 )
                {
                    printf("%d %d\n", i, j);
                    printf("%d %d\n", N*2+5-i, N*2+5-j);
                }
            }
    }
}

沒有留言:

張貼留言