diff options
Diffstat (limited to 'contests/Round788/A(2_pointers)/A(2_pointers).cpp')
| -rwxr-xr-x | contests/Round788/A(2_pointers)/A(2_pointers).cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/contests/Round788/A(2_pointers)/A(2_pointers).cpp b/contests/Round788/A(2_pointers)/A(2_pointers).cpp new file mode 100755 index 0000000..5d56719 --- /dev/null +++ b/contests/Round788/A(2_pointers)/A(2_pointers).cpp @@ -0,0 +1,29 @@ +#include<bits/stdc++.h> +using namespace std; +int main () { + int tt; + cin >> tt; + while (tt--) { + int n; + cin >> n; + vector<int> v(n); + for(auto &x : v) { + cin >> x; + } + int l = 0, r = v.size() - 1; + while(r > l) { + while(v[l] < 0) { + l++; + } + while(v[r] > 0) { + r--; + } + if(l > r) break; + v[l] = -v[l]; + v[r] = -v[r]; + } + cout << (is_sorted(v.begin(), v.end()) ? "YES" : "NO"); + } +} + + |
