2015年2月3日 星期二

2015/02/03 2014-2015 ACM-ICPC, Central Europe Regional Contest (CERC 14), problem: (C) Sums

#include <iostream>
#include <cstdio>

using namespace std;

typedef long long ll;

ll T, N;

int main()
{
    scanf("%I64d", &T);

    while( T-- )
    {
        scanf("%I64d", &N);

        for(ll i = 2; ; i++)
        {
            if( (ll)(i+1)*i/2 > N )
            {
                puts("IMPOSSIBLE");
                break;
            }

            if( (N*2+i-i*i)%(2*i) == 0 )
            {
                ll l = (N*2+i-i*i)/(2*i);

                printf("%I64d = %I64d", N, l);

                for(ll j = l+1; j < l+i; j++)
                    printf(" + %I64d", j);

                    puts("");
                    break;
            }

        }
    }
}

沒有留言:

張貼留言