Submission #1133127
Source Code Expand
#include <algorithm> #include <cassert> #include <cfloat> #include <climits> #include <cmath> #include <cstdio> #include <cstdlib> #include <deque> #include <iomanip> #include <iostream> #include <limits> #include <map> #include <queue> #include <set> #include <sstream> #include <stack> #include <string> #include <tuple> #include <vector> #define FOR(i,k,n) for (int (i)=(k); (i)<(n); ++(i)) #define rep(i,n) FOR(i,0,n) #define pb push_back #define all(v) begin(v), end(v) #define debug(x) cerr<< #x <<": "<<x<<endl #define debug2(x,y) cerr<< #x <<": "<< x <<", "<< #y <<": "<< y <<endl using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii; typedef vector<int> vi; typedef vector<vector<int> > vvi; typedef vector<ll> vll; typedef vector<vector<ll> > vvll; template<class T> using vv=vector<vector< T > >; int mod = 1e9 + 7; int n; vi x, a; int main() { scanf("%d", &n); x.resize(n); a.resize(n); rep (i, n) { scanf("%d", &x[i]); a[i] = i; } x[0] = 1; FOR (i, 1, n) { if (x[i-1] % 2 == 0) { x[i] = min(x[i], x[i-1] + 1); } else { x[i] = min(x[i], x[i-1] + 2); } } ll ans = 1; int cnt = 0; rep (i, n) { if (x[i] % 2 == 0) { ans = ans * (i + 1 - cnt) % mod; cnt += 1; } } FOR (i, 1, n - cnt + 1) { ans = ans * i % mod; } printf("%lld\n", ans); return 0; }
Submission Info
Submission Time | |
---|---|
Task | A - Robot Racing |
User | tspcx |
Language | C++14 (Clang 3.8.0) |
Score | 900 |
Code Size | 1472 Byte |
Status | AC |
Exec Time | 15 ms |
Memory | 1024 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 | 1 ms | 256 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 | 13 ms | 1024 KB |
2_01.txt | AC | 14 ms | 1024 KB |
2_02.txt | AC | 15 ms | 1024 KB |
2_03.txt | AC | 14 ms | 1024 KB |
2_04.txt | AC | 14 ms | 1024 KB |
2_05.txt | AC | 13 ms | 1024 KB |
2_06.txt | AC | 13 ms | 1024 KB |
2_07.txt | AC | 14 ms | 1024 KB |
2_08.txt | AC | 13 ms | 1024 KB |
2_09.txt | AC | 13 ms | 1024 KB |
2_10.txt | AC | 13 ms | 1024 KB |
2_11.txt | AC | 15 ms | 1024 KB |
2_12.txt | AC | 15 ms | 1024 KB |