結果
| 問題 |
No.1629 Sorting Integers (SUM of M)
|
| コンテスト | |
| ユーザー |
merlin
|
| 提出日時 | 2021-07-30 21:16:31 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 1,480 ms / 2,000 ms |
| コード長 | 1,243 bytes |
| コンパイル時間 | 2,763 ms |
| コンパイル使用メモリ | 77,296 KB |
| 実行使用メモリ | 41,388 KB |
| 最終ジャッジ日時 | 2024-09-15 22:31:35 |
| 合計ジャッジ時間 | 11,422 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 14 |
ソースコード
import java.io.*;
import java.util.*;
class Main
{
public static void main(String args[])throws Exception
{
BufferedReader bu=new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(bu.readLine());
int i,a[]=new int[9];
String s[]=bu.readLine().split(" ");
for(i=0;i<9;i++) a[i]=Integer.parseInt(s[i]);
long f[]=new long[n+1],p[]=new long[n+1],M=1000000007;
f[0]=p[0]=1;
for(i=1;i<=n;i++)
{
f[i]=f[i-1]*i%M;
p[i]=p[i-1]*10%M;
}
long ans=0,v,fa; int j,k;
for(i=n-1;i>=0;i--)
{
v=0;
for(j=0;j<9;j++)
if(a[j]!=0)
{
fa=1;
a[j]--;
for(k=0;k<9;k++)
fa=fa*f[a[k]]%M;
fa=f[n-1]*power(fa,M-2,M)%M;
v=(v+fa*(j+1))%M;
a[j]++;
}
ans=(ans+v*p[i]%M)%M;
}
System.out.print(ans);
}
static long power(long a,long b,long M)
{
long res=1;
while(b!=0)
{
if(b%2==1) res=res*a%M;
b>>=1;
a=a*a%M;
}
return res;
}
}
merlin