Submission #441525

#TimeUsernameProblemLanguageResultExecution timeMemory
441525elazarkorenExam (eJOI20_exam)C++17
0 / 100
1091 ms332 KiB
#include <iostream> #include <vector> #include <algorithm> #include <stack> #include <set> #define x first #define y second #define chkmin(a, b) a = min(a, b) #define chkmax(a, b) a = max(a, b) #define all(v) v.begin(), v.end() using namespace std; typedef vector<int> vi; typedef vector<vi> vvi; typedef pair<int, int> pii; typedef vector<pii> vii; const int MAX_N = 1e5 + 1; //int a[MAX_N]; int b[MAX_N]; void update(int l, int r, vi &v) { if (l > r) swap(l, r); int x = 0; for (int i = l; i <= r; i++) { chkmax(x, v[i]); } for (int i = l; i <= r; i++) { v[i] = x; } } int n; int Count(vi &v) { int ans = 0; for (int i = 0; i < n; i++) { if (v[i] == b[i]) ans++; } return ans; } int main() { cin >> n; vi a(n); for (int i = 0; i < n; i++) cin >> a[i]; for (int i = 0; i < n; i++) cin >> b[i]; vi per(n); for (int i = 0; i < n; i++) per[i] = i; int ans = 0; do { vi curr = a; for (int i = 0; i + 1 < n; i += 2) { update(per[i], per[i + 1], curr); chkmax(ans, Count(curr)); } } while (next_permutation(all(per))); cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...