Submission #1049242

#TimeUsernameProblemLanguageResultExecution timeMemory
1049242marExam (eJOI20_exam)C++14
14 / 100
7 ms604 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 100008; ll dp[maxn]; int main() { int n; cin>>n; int ans=0; vector<int> a, b; bool flag = true; int inp; for(int i=0;i<n;i++) { cin>>inp; a.push_back(inp); if(i>0 && inp <= a[i-1]) flag=false; } for(int i=0;i<n;i++){ cin>>inp; b.push_back(inp); } if(!flag) { vector<int> v; map<int, int> idx; for(int i=0; i<n; i++) idx[a[i]] = i; for(int i=0; i<n; i++) { if(idx.count(b[i]) && i <= idx[b[i]]) v.push_back(b[i]); } ll mx = 0; ll sz = v.size(); for (int i=0; i<sz; i++) { for(int j=0; j<i; j++) { if(v[i] >= v[j]) { dp[i] = max(dp[i], dp[j]+1); } } } for(int i=0; i<sz; i++) { mx = max(mx,dp[i]); } cout<<mx+1<<endl; return 0; } for(int i=0; i<n; i++) { if(a[i] != inp)continue; int tmp = i-1; while(tmp >= 0 && a[tmp] <= inp) { ans++; tmp--; } while(i < n && a[i] <= inp) { ans++; i++; } } cout<<ans<<endl; 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...