제출 #751023

#제출 시각아이디문제언어결과실행 시간메모리
751023LucaLucaMExam (eJOI20_exam)C++17
14 / 100
1085 ms1108 KiB
#include <bits/stdc++.h> using namespace std; const int NMAX = 1e5; int n; int a[NMAX + 5], b[NMAX + 5]; int vec[NMAX + 5]; int maxim[15][15]; int val[15]; int ans = 0; void bkt (int k) { if (k > n) { for (int i=1; i<=n; i++) val[i] = a[i]; int curr = 0; for (int i=1; i<=n; i++) { for (int j=i; j<=vec[i]; j++) val[j] = max(val[j], maxim[i][vec[i]]); curr += (val[i] == b[i]); } ans = max(ans, curr); } for (int i=k; i<=n; i++) { vec[k] = i; bkt(k+1); } } int main() { cin >> n; for (int i=1; i<=n; i++) cin >> a[i]; for (int i=1; i<=n; i++) cin >> b[i]; bkt(1); if (n <= 10) { for (int i=1; i<=n; i++) { maxim[i][i] = a[i]; for (int j=i+1; j<=n; j++) maxim[i][j] = max(maxim[i][j-1], a[j]); } bkt(1); cout << ans; return 0; } return 0; }
#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...