結果
問題 | No.2374 ASKT Subsequences |
ユーザー | hibit_at |
提出日時 | 2023-06-16 21:15:38 |
言語 | C++17 (gcc 12.3.0 + boost 1.83.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 4,164 bytes |
コンパイル時間 | 1,051 ms |
コンパイル使用メモリ | 112,604 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-29 22:36:39 |
合計ジャッジ時間 | 2,981 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
6,812 KB |
testcase_01 | AC | 2 ms
6,940 KB |
testcase_02 | AC | 2 ms
6,944 KB |
testcase_03 | AC | 2 ms
6,944 KB |
testcase_04 | WA | - |
testcase_05 | AC | 2 ms
6,940 KB |
testcase_06 | AC | 2 ms
6,940 KB |
testcase_07 | AC | 2 ms
6,944 KB |
testcase_08 | WA | - |
testcase_09 | AC | 2 ms
6,940 KB |
testcase_10 | AC | 2 ms
6,944 KB |
testcase_11 | WA | - |
testcase_12 | AC | 2 ms
6,944 KB |
testcase_13 | WA | - |
testcase_14 | WA | - |
testcase_15 | WA | - |
testcase_16 | WA | - |
testcase_17 | WA | - |
testcase_18 | WA | - |
testcase_19 | WA | - |
testcase_20 | WA | - |
testcase_21 | WA | - |
testcase_22 | WA | - |
testcase_23 | WA | - |
testcase_24 | WA | - |
testcase_25 | WA | - |
testcase_26 | WA | - |
testcase_27 | WA | - |
testcase_28 | WA | - |
testcase_29 | AC | 9 ms
6,940 KB |
testcase_30 | AC | 650 ms
6,940 KB |
ソースコード
#include <algorithm>#include <iostream>#include <iomanip>#include <limits.h>#include <map>#include <math.h>#include <numeric>#include <queue>#include <set>#include <sstream>#include <string>#include <utility>#include <vector>#include <stack>#include <complex>using namespace std;#define rep(i, n) for (int i = 0; i < n; i++)#define rep1(i, n) for (int i = 1; i < n + 1; i++)#define rev(i, n) for (int i = n - 1; i >= 0; i--)#define all(A) A.begin(), A.end()#define itr(A, l, r) A.begin() + l, A.begin() + r#define debug(var) cout << #var << " = " << var << endl;typedef long long ll;template <typename T1, typename T2>ostream &operator<<(ostream &os, const pair<T1, T2> &p){os << "(" << p.first << "," << p.second << ")";return os;}template <typename T1, typename T2>istream &operator>>(istream &is, pair<T1, T2> &p){is >> p.first >> p.second;return is;}template <typename T>ostream &operator<<(ostream &os, const vector<T> &v){for (int i = 0; i < (int)v.size(); i++){os << v[i] << (i + 1 != (int)v.size() ? " " : "");}return os;}template <typename T>ostream &operator<<(ostream &os, const vector<vector<T>> &v){for (int i = 0; i < (int)v.size(); i++){os << v[i] << endl;}return os;}template <typename T>ostream &operator<<(ostream &os, const vector<vector<vector<T>>> &v){for (int i = 0; i < (int)v.size(); i++){os << "i = " << i << endl;os << v[i];}return os;}template <typename T>istream &operator>>(istream &is, vector<T> &v){for (T &in : v)is >> in;return is;}template <typename T, typename S>ostream &operator<<(ostream &os, map<T, S> &mp){for (auto &[key, val] : mp){os << key << ":" << val << " ";}cout << endl;return os;}template <typename T>ostream &operator<<(ostream &os, set<T> st){auto itr = st.begin();for (int i = 0; i < (int)st.size(); i++){os << *itr << (i + 1 != (int)st.size() ? " " : "");itr++;}return os;}template <typename T>ostream &operator<<(ostream &os, multiset<T> st){auto itr = st.begin();for (int i = 0; i < (int)st.size(); i++){os << *itr << (i + 1 != (int)st.size() ? " " : "");itr++;}return os;}template <typename T>ostream &operator<<(ostream &os, queue<T> q){while (q.size()){os << q.front() << " ";q.pop();}return os;}template <typename T>ostream &operator<<(ostream &os, deque<T> q){while (q.size()){os << q.front() << " ";q.pop_front();}return os;}template <typename T>ostream &operator<<(ostream &os, stack<T> st){while (st.size()){os << st.top() << " ";st.pop();}return os;}template <typename T>ostream &operator<<(ostream &os, priority_queue<T> pq){while (pq.size()){os << pq.top() << " ";pq.pop();}return os;}template <typename T>ostream &operator<<(ostream &os, priority_queue<T, vector<T>, greater<T>> mpq){while (mpq.size()){os << mpq.top() << " ";mpq.pop();}return os;}int main(){int n;cin >> n;vector<int> a(n);cin >> a;vector<int> buf(*max_element(all(a)) + 2);rep(i, n){buf[a[i]]++;}ll ans = 0;rep(i, n){vector<int> new_buf(*max_element(all(a)) + 2);for (int j = i; j < n; j++){buf[a[j]]--;if (a[j] == a[i] + 10){for (int k = i + 1; k < j; k++){int estimate = a[k] - a[i] - 10;if (estimate > 0){if (new_buf[a[k]] * buf[a[k] + 1]){ans += new_buf[a[k]] * buf[a[k] + 1];}}}}new_buf[a[j]]++;}new_buf[a[i]]--;buf = new_buf;}cout << ans << endl;}