Submission #1260653

#TimeUsernameProblemLanguageResultExecution timeMemory
1260653duongquanghai08Difference (POI11_roz)C++20
100 / 100
253 ms7392 KiB
#include <bits/stdc++.h> using namespace std; #define pb push_back #define endl '\n' //#define int long long const int N=1e6+5,inf=2e8,MOD=1e9+7; vector<int> pos[26]; signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); //a[i]-a[j]-b[i]+b[j] //a[i]-b[i]-a[j]+b[j] int n; cin>>n; string s; cin>>s; for(int i=0;i<n;i++){ pos[s[i]-'a'].pb(i); } int sol=0; for(int i=0;i<26;i++){ for(int j=0;j<26;j++){ if(i==j || pos[i].empty() || pos[j].empty())continue; int cnt=0,mn=inf,far=0; int l1=0,l2=0; while(l1<pos[i].size() || l2<pos[j].size()){ if(l1<pos[i].size() && (l2==pos[j].size() || pos[i][l1]<pos[j][l2])){ cnt++; far++; l1++; } else{ mn=min({0,mn,cnt-far}); far=0; cnt--; l2++; } // if(cnt-mn==8)cout<<i<<' '<<j<<' '<<l1<<' '<<l2<<' '<<cnt<<' '<<mn<<endl; sol=max(sol,cnt-mn); } } } cout<<sol; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...