Submission #1131221
Source Code Expand
#ifdef DEBUG
#define _GLIBCXX_DEBUG
#endif
#include <bits/stdc++.h>
using namespace std;
#define mp make_pair
#define pb push_back
#define sz(s) ((int) ((s).size()))
#ifdef DEBUG
#define eprintf(...) fprintf(stderr, __VA_ARGS__), fflush(stderr)
#else
#define eprintf(...) ;
#endif
typedef long long ll;
typedef long double ld;
const int inf = (int) 1.01e9;
const ld eps = 1e-11;
const ld pi = acos(-1.0L);
mt19937 mrand(random_device{} ());
int rnd(int x) {
return mrand() % x;
}
const int mod = (int) 1e9 + 7;
void add(int & x, int y) {
if ((x += y) >= mod) {
x -= mod;
}
}
int sum(int x, int y) {
add(x, y);
return x;
}
int mult(int x, int y) {
return (ll) x * y % mod;
}
int power(int x, ll p) {
int res = 1;
while (p) {
if (p & 1) {
res = mult(res, x);
}
x = mult(x, x);
p >>= 1;
}
return res;
}
int inv(int x) {
return power(x, mod - 2);
}
void precalc() {
}
const int maxn = 1e5 + 100;
int n;
int a[maxn];
bool read() {
if (scanf("%d", &n) < 1) {
return false;
}
for (int i = 0; i < n; i++) {
scanf("%d", a + i);
}
return true;
}
void solve() {
int res = 1;
int cnt = 0;
for (int i = 0; i < n; i++) {
cnt++;
if (cnt * 2 - 1 > a[i]) {
res = mult(res, cnt);
cnt--;
}
}
for (int i = 1; i <= cnt; i++) {
res = mult(res, i);
}
printf("%d\n", res);
}
int main() {
precalc();
#ifdef DEBUG
assert(freopen("text.in", "r", stdin));
assert(freopen("text.out", "w", stdout));
#endif
while (read()) {
solve();
#ifdef DEBUG
eprintf("Time: %.3f\n", (double) clock() / CLOCKS_PER_SEC);
#endif
}
return 0;
}
Submission Info
Submission Time
2017-02-25 21:12:32+0900
Task
A - Robot Racing
User
StanislavErshov
Language
C++14 (GCC 5.4.1)
Score
900
Code Size
1759 Byte
Status
AC
Exec Time
13 ms
Memory
764 KB
Compile Error
./Main.cpp: In function ‘bool read()’:
./Main.cpp:77:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", a + i);
^
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
6 ms
764 KB
0_01.txt
AC
1 ms
256 KB
0_02.txt
AC
1 ms
256 KB
0_03.txt
AC
1 ms
256 KB
1_00.txt
AC
1 ms
256 KB
1_01.txt
AC
1 ms
256 KB
1_02.txt
AC
1 ms
256 KB
1_03.txt
AC
1 ms
256 KB
1_04.txt
AC
1 ms
256 KB
1_05.txt
AC
1 ms
256 KB
1_06.txt
AC
1 ms
256 KB
1_07.txt
AC
1 ms
256 KB
1_08.txt
AC
1 ms
256 KB
1_09.txt
AC
1 ms
256 KB
1_10.txt
AC
1 ms
256 KB
2_00.txt
AC
11 ms
640 KB
2_01.txt
AC
12 ms
640 KB
2_02.txt
AC
13 ms
640 KB
2_03.txt
AC
12 ms
640 KB
2_04.txt
AC
12 ms
640 KB
2_05.txt
AC
12 ms
640 KB
2_06.txt
AC
12 ms
640 KB
2_07.txt
AC
12 ms
640 KB
2_08.txt
AC
11 ms
640 KB
2_09.txt
AC
12 ms
640 KB
2_10.txt
AC
12 ms
640 KB
2_11.txt
AC
13 ms
640 KB
2_12.txt
AC
13 ms
640 KB