Submission #65921022
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
using ary = array<int, 2>;
template <typename T>
using vec = vector<T>;
constexpr int N = 2e5 + 5, mod = 998244353;
int main()
{
ios::sync_with_stdio(false), cin.tie(0);
int n;
cin >> n;
vec<int> a(n + 1);
for (int i = 1; i <= n; i++)
cin >> a[i];
vec<int> l, r;
for (int i = 1; i <= n; i++)
{
if (i > 1 && i < n)
{
if (a[i] > a[i - 1] && a[i] > a[i + 1])
l.push_back(i);
if (a[i] < a[i - 1] && a[i] < a[i + 1]) r.push_back(i);
}
}
i64 ans = 0;
for (int i = 1; i < n; i++)
{
if (a[i] < a[i + 1])
{
int posl1 = upper_bound(l.begin(), l.end(), i) - l.begin();
int posr1 = upper_bound(r.begin(), r.end(), i) - r.begin();
if (posl1 == l.size() || posr1 == r.size()) continue;
int posl2 = upper_bound(l.begin(), l.end(), l[posl1]) - l.begin();
int posr2 = upper_bound(r.begin(), r.end(), r[posr1]) - r.begin();
int pos1 = (posl2 == l.size() ? n : l[posl2]);
int pos2 = (posr2 == r.size() ? n : r[posr2]);
int L = max(l[posl1], r[posr1]) + 1;
int R = min(pos1, pos2);
if (L - i + 1 >= 4) ans += R - L + 1;
}
}
cout << ans;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - ~ |
| User | wsy0655 |
| Language | C++ 20 (gcc 12.2) |
| Score | 350 |
| Code Size | 1438 Byte |
| Status | AC |
| Exec Time | 45 ms |
| Memory | 5896 KiB |
Compile Error
Main.cpp: In function ‘int main()’:
Main.cpp:34:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
34 | if (posl1 == l.size() || posr1 == r.size()) continue;
| ~~~~~~^~~~~~~~~~~
Main.cpp:34:44: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
34 | if (posl1 == l.size() || posr1 == r.size()) continue;
| ~~~~~~^~~~~~~~~~~
Main.cpp:39:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
39 | int pos1 = (posl2 == l.size() ? n : l[posl2]);
| ~~~~~~^~~~~~~~~~~
Main.cpp:40:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
40 | int pos2 = (posr2 == r.size() ? n : r[posr2]);
| ~~~~~~^~~~~~~~~~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 350 / 350 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample00.txt, sample01.txt, sample02.txt |
| All | sample00.txt, sample01.txt, sample02.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt, testcase31.txt, testcase32.txt, testcase33.txt, testcase34.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample00.txt | AC | 1 ms | 3452 KiB |
| sample01.txt | AC | 1 ms | 3468 KiB |
| sample02.txt | AC | 1 ms | 3436 KiB |
| testcase00.txt | AC | 8 ms | 3744 KiB |
| testcase01.txt | AC | 37 ms | 5104 KiB |
| testcase02.txt | AC | 5 ms | 3540 KiB |
| testcase03.txt | AC | 37 ms | 5208 KiB |
| testcase04.txt | AC | 31 ms | 4824 KiB |
| testcase05.txt | AC | 36 ms | 5264 KiB |
| testcase06.txt | AC | 26 ms | 4628 KiB |
| testcase07.txt | AC | 36 ms | 5176 KiB |
| testcase08.txt | AC | 1 ms | 3460 KiB |
| testcase09.txt | AC | 1 ms | 3512 KiB |
| testcase10.txt | AC | 13 ms | 3984 KiB |
| testcase11.txt | AC | 45 ms | 5896 KiB |
| testcase12.txt | AC | 30 ms | 4940 KiB |
| testcase13.txt | AC | 45 ms | 5888 KiB |
| testcase14.txt | AC | 14 ms | 4308 KiB |
| testcase15.txt | AC | 8 ms | 3516 KiB |
| testcase16.txt | AC | 14 ms | 4316 KiB |
| testcase17.txt | AC | 6 ms | 3532 KiB |
| testcase18.txt | AC | 14 ms | 4452 KiB |
| testcase19.txt | AC | 4 ms | 3604 KiB |
| testcase20.txt | AC | 14 ms | 4312 KiB |
| testcase21.txt | AC | 6 ms | 3484 KiB |
| testcase22.txt | AC | 14 ms | 4316 KiB |
| testcase23.txt | AC | 9 ms | 3696 KiB |
| testcase24.txt | AC | 13 ms | 4392 KiB |
| testcase25.txt | AC | 7 ms | 3476 KiB |
| testcase26.txt | AC | 14 ms | 4292 KiB |
| testcase27.txt | AC | 4 ms | 3384 KiB |
| testcase28.txt | AC | 14 ms | 4224 KiB |
| testcase29.txt | AC | 6 ms | 3516 KiB |
| testcase30.txt | AC | 14 ms | 4388 KiB |
| testcase31.txt | AC | 3 ms | 3320 KiB |
| testcase32.txt | AC | 14 ms | 4304 KiB |
| testcase33.txt | AC | 7 ms | 3528 KiB |
| testcase34.txt | AC | 14 ms | 4340 KiB |