Submission #2228044
Source Code Expand
#include <algorithm> #include <bitset> #include <cassert> #include <cfloat> #include <climits> #include <cmath> #include <complex> #include <cstdio> #include <cstdlib> #include <cstring> #include <ctime> #include <fstream> #include <functional> #include <iomanip> #include <iostream> #include <list> #include <map> #include <memory> #include <numeric> #include <queue> #include <set> #include <sstream> #include <stack> #include <string> #include <utility> #include <vector> // c++11 #include <array> #include <tuple> #include <unordered_map> #include <unordered_set> #define mp make_pair #define mt make_tuple #define rep(i, n) for (int i = 0; i < (n); i++) using namespace std; using ll = long long; using ull = unsigned long long; using pii = pair<int, int>; const int INF = 1 << 29; const ll LL_INF = 1LL << 60; const double EPS = 1e-9; const ll MOD = 1000000007; const int dx[] = {1, 0, -1, 0}, dy[] = {0, -1, 0, 1}; int N; vector<ll> X; ll result; int main() { cin >> N; X.resize(N); for (auto &val : X) { cin >> val; } stack<ll> positions; result = 1; for (int i = 0; i < N; i++) { positions.emplace(X[i]); while (not positions.empty()) { ll p = positions.top(); int size = positions.size(); if (2 * size - 1 <= p) { break; } else { positions.pop(); result *= size; result %= MOD; } } } int size = positions.size(); for (int i = 1; i <= size; i++) { result *= i; result %= MOD; } cout << result << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | A - Robot Racing |
User | togatoga |
Language | C++14 (GCC 5.4.1) |
Score | 900 |
Code Size | 1801 Byte |
Status | AC |
Exec Time | 42 ms |
Memory | 1792 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 | 30 ms | 1408 KB |
2_01.txt | AC | 32 ms | 1792 KB |
2_02.txt | AC | 42 ms | 1792 KB |
2_03.txt | AC | 31 ms | 1664 KB |
2_04.txt | AC | 31 ms | 1792 KB |
2_05.txt | AC | 31 ms | 1792 KB |
2_06.txt | AC | 32 ms | 1792 KB |
2_07.txt | AC | 32 ms | 1792 KB |
2_08.txt | AC | 31 ms | 1792 KB |
2_09.txt | AC | 31 ms | 1792 KB |
2_10.txt | AC | 31 ms | 1792 KB |
2_11.txt | AC | 41 ms | 1792 KB |
2_12.txt | AC | 41 ms | 1792 KB |