Submission #1002138

#TimeUsernameProblemLanguageResultExecution timeMemory
1002138votranngocvyDifference (POI11_roz)C++14
20 / 100
448 ms14180 KiB
#include <bits/stdc++.h> using namespace std; #define NAME "differ" const int N = 1e6 + 5; vector<int>pos[30]; int n,ans; char s[N]; void calc(int a,int b) { vector<int>vec; int i = 0,j = 0; while (i < (int)pos[a].size() && j < (int)pos[b].size()) { if (pos[a][i] < pos[b][j]) { vec.push_back(1); i++; } else { vec.push_back(-1); j++; } } while (i < (int)pos[a].size()) { vec.push_back(1); i++; } while (j < (int)pos[b].size()) { vec.push_back(-1); j++; } int sum = 0; for (auto x: vec) { sum = max(sum + x,x); ans = max(ans,sum); } } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> n; for (int i = 1; i <= n; i++) { cin >> s[i]; pos[s[i] - 'a'].push_back(i); } for (int i = 0; i < 26; i++) for (int j = 0; j < 26; j++) if (i != j && pos[i].size() && pos[j].size()) calc(i,j); cout << ans << "\n"; }
#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...