Submission #1003391

#TimeUsernameProblemLanguageResultExecution timeMemory
1003391vjudge1ZIGZAG (INOI20_zigzag)C++17
8 / 100
2069 ms8372 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pii pair<int, int> #define all(v) v.begin(), v.end() #define oo 1e9 const int MAX = 3e5 + 5; int n, q; int arr[MAX]; int ans[MAX][2]; void solve(){ cin >> n >> q; for(int i = 1; i <= n; i++){ cin >> arr[i]; } while(q--){ char t; cin >> t; if(t == '*'){ int l, r; cin >> l >> r; for(int i = l; i <= r; i++) arr[i] *= -1; } if(t == '+'){ int l, r, v; cin >> l >> r >> v; for(int i = l; i <= r; i++) arr[i] += v; } if(t == '?'){ int l, r; cin >> l >> r; for(int i = l; i <= r; i++) ans[i][0] = ans[i][1] = 1; int res = 1; for(int i = r - 1; i >= l; i--){ if(arr[i] > arr[i + 1]) ans[i][1] = ans[i + 1][0] + 1; if(arr[i] < arr[i + 1]) ans[i][0] = ans[i + 1][1] + 1; res += max(ans[i][0], ans[i][1]); } cout << res << "\n"; } } } signed main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int t = 1; while(t--){ solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...