Submission #44113217
Source Code Expand
#include <assert.h>
#include <math.h>
#include <memory.h>
#include <stdio.h>
#include <algorithm>
#include <chrono>
#include <complex>
#include <ctime>
#include <fstream>
#include <iostream>
#include <list>
#include <map>
#include <random>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;
#define ARG4(_1,_2,_3,_4,...) _4
#define forn3(i,l,r) for (int i = int(l); i < int(r); ++i)
#define forn2(i,n) forn3 (i, 0, n)
#define forn(...) ARG4(__VA_ARGS__, forn3, forn2) (__VA_ARGS__)
#define ford3(i,l,r) for (int i = int(r) - 1; i >= int(l); --i)
#define ford2(i,n) ford3 (i, 0, n)
#define ford(...) ARG4(__VA_ARGS__, ford3, ford2) (__VA_ARGS__)
#define pb push_back
#define mp make_pair
#define fs first
#define sc second
#define sz(a) ((int) (a).size())
#define all(x) (x).begin(), (x).end()
const long double eps = 1e-9;
const int inf = (1 << 30) - 1;
const long long inf64 = (1LL << 62) - 1;
const long double pi = acos(-1);
template<typename T> inline T abs (T x) {return x < 0 ? -x : x;}
template<typename T> inline T sqr (T x) {return x * x;}
template<typename T1, typename T2> inline bool umx (T1& a, T2 b) {if (a < b) {a = b; return 1;} return 0;}
template<typename T1, typename T2> inline bool umn (T1& a, T2 b) {if (b < a) {a = b; return 1;} return 0;}
void Solve(int ti) {
int n;
cin >> n;
vector<int> a(n);
forn (i, n) {
cin >> a[i];
--a[i];
}
deque<pair<int, int>> segs;
int left = 0;
int right = 0;
long long res = 0;
while (left < n) {
while (right < n) {
if (a[right] == 0) {
segs.pb({right, right});
} else {
while (!segs.empty() && a[segs.back().sc] + 1 != a[right]) {
segs.pop_back();
}
if (segs.empty()) {
break;
}
segs.back().sc = right;
}
res += sz(segs);
++right;
}
if (segs.empty()) {
++left;
} else {
left = segs.front().sc + 1;
segs.pop_front();
}
umx(right, left);
}
cout << res << "\n";
}
int main () {
ios_base::sync_with_stdio(0);
std::cin.tie(nullptr);
// clock_t start_clock = clock();
// freopen("_input.txt", "rt", stdin);
// freopen("_output.txt", "wt", stdout);
int tc = 1;
// cin >> tc;
forn (ti, tc) {
Solve(ti);
}
// double total_seconds = (double) (clock() - start_clock) / CLOCKS_PER_SEC;
// cerr << "Working time: " << total_seconds << "s." << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - Insert 1, 2, 3, ... |
| User | TeaPot |
| Language | C++ (GCC 9.2.1) |
| Score | 600 |
| Code Size | 2830 Byte |
| Status | AC |
| Exec Time | 47 ms |
| Memory | 8992 KiB |
Compile Error
./Main.cpp: In function ‘void Solve(int)’:
./Main.cpp:51:16: warning: unused parameter ‘ti’ [-Wunused-parameter]
51 | void Solve(int ti) {
| ~~~~^~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 600 / 600 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 01_sample_01.txt, 01_sample_02.txt, 01_sample_03.txt |
| All | 01_sample_01.txt, 01_sample_02.txt, 01_sample_03.txt, 02_rand_1_01.txt, 02_rand_1_02.txt, 02_rand_1_03.txt, 02_rand_1_04.txt, 02_rand_1_05.txt, 02_rand_1_06.txt, 02_rand_1_07.txt, 02_rand_1_08.txt, 02_rand_1_09.txt, 02_rand_1_10.txt, 02_rand_1_11.txt, 02_rand_1_12.txt, 02_rand_1_13.txt, 02_rand_1_14.txt, 02_rand_1_15.txt, 03_rand_2_01.txt, 03_rand_2_02.txt, 03_rand_2_03.txt, 03_rand_2_04.txt, 03_rand_2_05.txt, 03_rand_2_06.txt, 03_rand_2_07.txt, 03_rand_2_08.txt, 03_rand_2_09.txt, 03_rand_2_10.txt, 03_rand_2_11.txt, 03_rand_2_12.txt, 03_rand_2_13.txt, 03_rand_2_14.txt, 03_rand_2_15.txt, 03_rand_2_16.txt, 03_rand_2_17.txt, 03_rand_2_18.txt, 03_rand_2_19.txt, 03_rand_2_20.txt, 03_rand_2_21.txt, 03_rand_2_22.txt, 03_rand_2_23.txt, 03_rand_2_24.txt, 03_rand_2_25.txt, 03_rand_2_26.txt, 03_rand_2_27.txt, 03_rand_2_28.txt, 03_rand_2_29.txt, 03_rand_2_30.txt, 03_rand_2_31.txt, 03_rand_2_32.txt, 03_rand_2_33.txt, 03_rand_2_34.txt, 03_rand_2_35.txt, 03_rand_2_36.txt, 03_rand_2_37.txt, 03_rand_2_38.txt, 03_rand_2_39.txt, 03_rand_2_40.txt, 03_rand_2_41.txt, 03_rand_2_42.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01_sample_01.txt | AC | 6 ms | 3392 KiB |
| 01_sample_02.txt | AC | 2 ms | 3448 KiB |
| 01_sample_03.txt | AC | 7 ms | 3496 KiB |
| 02_rand_1_01.txt | AC | 2 ms | 3440 KiB |
| 02_rand_1_02.txt | AC | 3 ms | 3444 KiB |
| 02_rand_1_03.txt | AC | 43 ms | 8992 KiB |
| 02_rand_1_04.txt | AC | 38 ms | 8952 KiB |
| 02_rand_1_05.txt | AC | 2 ms | 3500 KiB |
| 02_rand_1_06.txt | AC | 39 ms | 5044 KiB |
| 02_rand_1_07.txt | AC | 38 ms | 5164 KiB |
| 02_rand_1_08.txt | AC | 38 ms | 5116 KiB |
| 02_rand_1_09.txt | AC | 41 ms | 5056 KiB |
| 02_rand_1_10.txt | AC | 38 ms | 5116 KiB |
| 02_rand_1_11.txt | AC | 37 ms | 5240 KiB |
| 02_rand_1_12.txt | AC | 34 ms | 5040 KiB |
| 02_rand_1_13.txt | AC | 33 ms | 5244 KiB |
| 02_rand_1_14.txt | AC | 40 ms | 5128 KiB |
| 02_rand_1_15.txt | AC | 40 ms | 5052 KiB |
| 03_rand_2_01.txt | AC | 38 ms | 7228 KiB |
| 03_rand_2_02.txt | AC | 37 ms | 7620 KiB |
| 03_rand_2_03.txt | AC | 39 ms | 7612 KiB |
| 03_rand_2_04.txt | AC | 37 ms | 7144 KiB |
| 03_rand_2_05.txt | AC | 38 ms | 7148 KiB |
| 03_rand_2_06.txt | AC | 40 ms | 7616 KiB |
| 03_rand_2_07.txt | AC | 39 ms | 7228 KiB |
| 03_rand_2_08.txt | AC | 38 ms | 6440 KiB |
| 03_rand_2_09.txt | AC | 34 ms | 6336 KiB |
| 03_rand_2_10.txt | AC | 40 ms | 6500 KiB |
| 03_rand_2_11.txt | AC | 38 ms | 6436 KiB |
| 03_rand_2_12.txt | AC | 37 ms | 6556 KiB |
| 03_rand_2_13.txt | AC | 38 ms | 6332 KiB |
| 03_rand_2_14.txt | AC | 37 ms | 6436 KiB |
| 03_rand_2_15.txt | AC | 42 ms | 5644 KiB |
| 03_rand_2_16.txt | AC | 39 ms | 5748 KiB |
| 03_rand_2_17.txt | AC | 37 ms | 5652 KiB |
| 03_rand_2_18.txt | AC | 38 ms | 5604 KiB |
| 03_rand_2_19.txt | AC | 38 ms | 5712 KiB |
| 03_rand_2_20.txt | AC | 38 ms | 5680 KiB |
| 03_rand_2_21.txt | AC | 41 ms | 5540 KiB |
| 03_rand_2_22.txt | AC | 36 ms | 4988 KiB |
| 03_rand_2_23.txt | AC | 37 ms | 4976 KiB |
| 03_rand_2_24.txt | AC | 36 ms | 5116 KiB |
| 03_rand_2_25.txt | AC | 36 ms | 4976 KiB |
| 03_rand_2_26.txt | AC | 37 ms | 5032 KiB |
| 03_rand_2_27.txt | AC | 38 ms | 5116 KiB |
| 03_rand_2_28.txt | AC | 37 ms | 5116 KiB |
| 03_rand_2_29.txt | AC | 36 ms | 5128 KiB |
| 03_rand_2_30.txt | AC | 37 ms | 5176 KiB |
| 03_rand_2_31.txt | AC | 39 ms | 5236 KiB |
| 03_rand_2_32.txt | AC | 38 ms | 5240 KiB |
| 03_rand_2_33.txt | AC | 38 ms | 5088 KiB |
| 03_rand_2_34.txt | AC | 36 ms | 5036 KiB |
| 03_rand_2_35.txt | AC | 38 ms | 5164 KiB |
| 03_rand_2_36.txt | AC | 44 ms | 4980 KiB |
| 03_rand_2_37.txt | AC | 46 ms | 4992 KiB |
| 03_rand_2_38.txt | AC | 46 ms | 5164 KiB |
| 03_rand_2_39.txt | AC | 45 ms | 4968 KiB |
| 03_rand_2_40.txt | AC | 47 ms | 4976 KiB |
| 03_rand_2_41.txt | AC | 45 ms | 4964 KiB |
| 03_rand_2_42.txt | AC | 46 ms | 4996 KiB |