제출 #577081

#제출 시각아이디문제언어결과실행 시간메모리
577081vqpahmadExam (eJOI20_exam)C++14
0 / 100
1091 ms168348 KiB
#include <bits/stdc++.h> #define ll long long #define endl '\n' #define all(a) a.begin(),a.end() #define mod (ll)(10000007) using namespace std; const int N = 1e6 + 15; int mx ; int n; vector<int> b; vector<int> a; void solve(int pos,vector<int> v){ vector<int> temp = v; if (pos==n){ int cnt =0; for (int i=0;i<n;i++){ if (v[i]==b[i])cnt++; } mx = max(mx,cnt); return ; } bool can = 1; int cur = pos; while (a[cur]!=b[pos]){ if (a[cur]>b[pos]) { can = 0; break; } cur--; if (cur==-1) { can = 0; break; } } if (can){ for (int i=cur;i<=pos;i++){ v[i] = b[pos]; } solve(pos+1,v); v = temp; } cur = pos; can = 1; while (a[cur]!=b[pos]){ if (a[cur]>b[pos]) { can = 0; break; } cur++; if (cur==n) { can = 0; break; } } if (can){ for (int i=pos;i<=cur;i++){ v[i] = b[pos]; } solve(cur+1,v); } solve(pos+1,temp); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; a.resize(n); b.resize(n); for (int i=0;i<n;i++){ cin >> a[i]; } for (int i=0;i<n;i++){ cin >> b[i]; } solve(0,a); cout << mx ; }
#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...