Submission #199063

#TimeUsernameProblemLanguageResultExecution timeMemory
199063virchau13Preokret (COCI19_preokret)C++17
50 / 50
6 ms508 KiB
#include <iostream> #include <algorithm> #include <set> #include <deque> #include <queue> using namespace std; int main(){ int n; cin >> n; int arr[n], *c = new int[n+2]+2, *p = new int[n+2]+2; int t = 1; c[-1] = p[-1] = c[-2] = p[-2] = 0; for(int i = 0; i < n; i++){ cin >> arr[i]; c[i] = c[i-1] + (arr[i] == 1); p[i] = p[i-1] + (arr[i] == 2); if(c[i] == p[i]) t++; } int cx = -1, px = -1, m = 0; bool cr = 0, pr = 0; for(int i = 0; i < n; i++){ if(c[i] != c[i-1]+1){ if(cr && c[i] > p[i]) m = max(m, c[i]-c[cx]); cx = i; cr = c[i] < p[i]; } if(p[i] != p[i-1]+1){ if(pr && p[i] > c[i]) m = max(m, p[i]-p[px]); px = i; pr = p[i] < c[i]; } } if(cr && c[n-1] > p[n-1]) m = max(m, c[n-1]-c[cx]); if(pr && p[n-1] > c[n-1]) m = max(m, p[n-1]-p[px]); cout << c[n-1] << ' ' << p[n-1] << '\n'; cout << t << '\n'; cout << m << '\n'; // delete[] (c-2); // delete[] (p-2); }
#Verdict Execution timeMemoryGrader output
Fetching results...