记录编号 32952 评测结果 AAAAAAAAAA
题目名称 分裂 最终得分 100
用户昵称 GravatarQhelDIV 是否通过 通过
代码语言 C++ 运行时间 0.676 s
提交时间 2011-11-08 20:33:47 内存使用 0.32 MiB
显示代码纯文本
#include <fstream>

#define cin fin
#define cout fout

using namespace std;

ifstream fin("mushroom.in");
ofstream fout("mushroom.out");

struct lint{
    int len;
    int d[15000];
    void mult(int x)
    {
        for (int i=1; i<=len; i++)
            d[i] *= x;
        for (int i=1; i<=len; i++)
        {
            d[i+1] += d[i]/10;
            d[i] %= 10;
        }
        while (d[len+1] != 0)
        {
            len++;
            d[len+1] = d[len]/10;
            d[len] %= 10;
        }
    }
    void divi(int x)
    {
        for (int i=len; i>=1; i--)
        {
            if (i != 1)
                d[i-1] += (d[i] % x) * 10;
            d[i] = d[i]/x;
        }
        while ( (len > 1) && (d[len] == 0) )
            len --;
    }
    void print()
    {
        for (int i=len; i>=1; i--)
            cout << d[i];
        cout << endl;
    }
};

int n;
lint ans;

int main()
{
    cin >> n;
    ans.len = 1;
    ans.d[1] = 1;
    int a, b;
    a = n - (n/2) + 1;
    b = 1;
    for (int i=1; i<=(n/2); i++)
    {
        ans.mult(a);
        ans.divi(b);
        a++;
        b++;
    }
    ans.print();
    return 0;
}