Skip to content
Narrow screen resolution Wide screen resolution Auto adjust screen size Increase font size Decrease font size Default font size default color grey color
         
 | 
VNOI - Olympic tin học Việt Nam

Điểm tin VOJ

Số thành viên:6040
Số bài tập:1001
Số bài nộp:722923
Bài nộp hôm nay:0

Top 10 thành viên xuất sắc

HạngThành viênĐiểm
1mr_invincible587.9
2white_cobra418.6
3hieult403.4
4phaleq384.0
5vodanh9x368.2
6con_nha_ngheo352.0
7flash_mt350.2
8darksabers349.8
9yenthanh132345.3
10rockman9x_94343.1
[VOJ] Mã nguồn #194 - LEM6 solution 0.00s
Ngày: 03-10-2010
Cập nhật: 09-12-2010
Người gửi: hunterphu
Ngôn ngữ: C++
Xem: 1379

Điểm: 4.6/5 (123 Phiếu)


//Các bạn bỏ phiếu cho mình nhé :D
#include<iostream>
#define base 1000000000
#define nm 1001
using namespace std;
int tren[nm];
int duoi[nm];
long long kq[nm];
int b[nm];
int t=nm-1;
int n,m;
long long power(int x,int y)
{
     if (y==0)return 1;
     long long u=power(x,y/2);
     if (y%2==0)return u*u;
     return u*u*x;
}
void process(int a[],int n)
{
     for (int i=2;i*i<=n;i++)
     if (n%i==0)
        for (int p=1;n%i==0;p++)
        {
             n/=i;
             a[i]++;
        }
     if (n>1)
        a[n]++;
}
void mul(long long k,int&t)
{
     long long temp,nho=0;
     for (int i=1000;i>=t;i--)
     {
         temp=kq[i]*k+nho;
         kq[i]=temp%base;
         nho=temp/base;
     }
     while (nho>0)
     {
           t--;
           kq[t]=nho%base;
           nho=nho/base;
     }
}
int main()
{
    scanf ("%d%d",&n,&m);
    for (int i=0;i<m;i++)
    {
        scanf ("%d",&b[i]);
        // Phần này đã được xóa
    }
    if (n<m)
    {
       printf ("0");
       return 0;
    }
    for (int i=n;i>m;i--)
        process(tren,i);
    for (int i=n-m;i>=2;i--)
        process(duoi,i);
    kq[1000]=1;
    for (int i=1000;i>=2;i--)
    {
        tren[i]-=duoi[i];
        if (tren[i])
        {
           long long k=power(i,tren[i]);
           mul(k,t);
        }
    }
    printf ("%lld",kq[t]);
    for (int i=t+1;i<=1000;i++)
        printf("%09lld",kq[i]);
    return 0;
}