Submission #1131269
Source Code Expand
using System; using System.Text; using System.Collections.Generic; class Solve{ public Solve(){} StringBuilder sb; public static int Main(){ new Solve().Run(); return 0; } void Run(){ sb = new StringBuilder(); Calc(); Console.Write(sb.ToString()); } void Calc(){ int N = int.Parse(Console.ReadLine()); string[] str = Console.ReadLine().Split(' '); long[] x = new long[N]; for(int i=0;i<N;i++){ x[i] = int.Parse(str[i]); } long count = 1; int c = 0; for(int i=0;i<N;i++){ if(x[i] >= c*2 + 1){ c++; } else{ count = count * (c+1) % Define.mod; } } Fact F = new Fact(N); count = count * F.GetFact(c) % Define.mod; sb.Append(count+"\n"); } } public static class Define{ public const long mod = 1000000007; } class Fact{ public long[] f; public long[] rf; public Fact(int N){ f = new long[N+1]; rf = new long[N+1]; for(int i=0;i<N+1;i++){ if(i == 0){ f[i] = 1; } else{ f[i] = (f[i-1]*i)%Define.mod; } } for(int i=N;i>=0;i--){ if(i == N){ rf[i] = pow(f[N],Define.mod-2); } else{ rf[i] = rf[i+1]*(i+1)%Define.mod; } } } public long pow(long N,long K){ if(K == 0){ return 1; } else if(K % 2 == 0){ long t = pow(N,K/2); return t*t%Define.mod; } else{ return N*pow(N,K-1)%Define.mod; } } public long GetFact(int N){ return f[N]; } public long GetConv(int N,int R){ return ((f[N]*rf[R])%Define.mod*rf[N-R])%Define.mod; } }
Submission Info
Submission Time | |
---|---|
Task | A - Robot Racing |
User | leign |
Language | C# (Mono 4.6.2.0) |
Score | 900 |
Code Size | 2015 Byte |
Status | AC |
Exec Time | 63 ms |
Memory | 22368 KB |
Judge Result
Set Name | Sample | Subtask | All | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 500 / 500 | 400 / 400 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt |
Subtask | 0_00.txt, 0_01.txt, 0_02.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt |
All | 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt, 1_10.txt, 2_00.txt, 2_01.txt, 2_02.txt, 2_03.txt, 2_04.txt, 2_05.txt, 2_06.txt, 2_07.txt, 2_08.txt, 2_09.txt, 2_10.txt, 2_11.txt, 2_12.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_00.txt | AC | 21 ms | 9044 KB |
0_01.txt | AC | 20 ms | 9044 KB |
0_02.txt | AC | 20 ms | 9044 KB |
0_03.txt | AC | 20 ms | 11092 KB |
1_00.txt | AC | 21 ms | 11092 KB |
1_01.txt | AC | 20 ms | 11092 KB |
1_02.txt | AC | 21 ms | 11092 KB |
1_03.txt | AC | 20 ms | 9172 KB |
1_04.txt | AC | 20 ms | 11092 KB |
1_05.txt | AC | 20 ms | 11092 KB |
1_06.txt | AC | 20 ms | 9044 KB |
1_07.txt | AC | 20 ms | 9044 KB |
1_08.txt | AC | 20 ms | 11092 KB |
1_09.txt | AC | 20 ms | 11092 KB |
1_10.txt | AC | 21 ms | 13140 KB |
2_00.txt | AC | 56 ms | 18784 KB |
2_01.txt | AC | 56 ms | 16992 KB |
2_02.txt | AC | 63 ms | 18400 KB |
2_03.txt | AC | 56 ms | 20960 KB |
2_04.txt | AC | 55 ms | 16864 KB |
2_05.txt | AC | 56 ms | 19040 KB |
2_06.txt | AC | 55 ms | 16992 KB |
2_07.txt | AC | 56 ms | 19040 KB |
2_08.txt | AC | 55 ms | 16864 KB |
2_09.txt | AC | 55 ms | 16864 KB |
2_10.txt | AC | 56 ms | 19040 KB |
2_11.txt | AC | 63 ms | 22368 KB |
2_12.txt | AC | 63 ms | 20320 KB |