Submission #1302003

#TimeUsernameProblemLanguageResultExecution timeMemory
1302003h1drogenExam (eJOI20_exam)C++20
14 / 100
19 ms628 KiB
#include<bits/stdc++.h> using namespace std; #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #define int long long #define ll long long #define all(x) (x).begin(),(x).end() #define rall(x) (x).rbegin(),(x).rend() #define f first #define s second #define yes cout<<"YES\n" #define no cout<<"NO\n" #define imp cout<<-1<<"\n" #define pb push_back #define pii pair<int,int> #define piii pair<int,pair<int,int>> #define ls v<<1 #define rs v<<1|1 #define fast ios::sync_with_stdio(false);cin.tie(0);cout.tie(0) #define ptree tree * const int mod=1e9+7; const int INF = 1e18; const int N=1e6+50; const int logn=16; void solve(){ int n,q,m,b,c; cin>>n; map<int,int>cnt; vector<int>v(n+1); vector<pii>pos(n); for(int i=1;i<=n;i++){ cin>>v[i]; pos[i-1].f=v[i]; pos[i-1].s=i; } sort(all(pos)); vector<int>g(n+1); for(int i=1;i<=n;i++){ cin>>g[i]; } vector<int>dp(n+1,-1); for(int ii=0;ii<n;ii++){ int i=pos[ii].s; int val=pos[ii].f; // cout<<i<<" "<<val<<"\n"; int ans=0; int r=i; int mx=0; for(int j=i+1;j<=n;j++){ if(dp[j]==g[j] and dp[j]!=val){ ans--; } if(g[j]==val){ ans++; } if(mx<ans){ mx=ans; r=j; } } for(int j=i;j<=r;j++){ dp[j]=val; } ans=0; int l=i; mx=0; for(int j=i-1;j>0;j--){ if(dp[j]==g[j] and dp[j]!=val){ ans--; } if(g[j]==val){ ans++; } if(mx<ans){ mx=ans; l=j; } } // cout<<l<<" "<<r<<"\n"; for(int j=l;j<=i;j++){ dp[j]=val; } } int ans=0; for(int i=1;i<=n;i++){ // cout<<dp[i]<<" "; if(dp[i]==g[i]) ans++; } cout<<ans<<"\n"; } signed main(){ fast; int t=1; // cin>>t; while(t--){ solve(); } 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...