# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
40899 | MatheusLealV | Difference (POI11_roz) | C++14 | 110 ms | 32768 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define N 1000010
#define f first
#define s second
using namespace std;
typedef pair<int, int> pii;
int n, tot[30], resp, pref[N], suf[N], sum[N];
string s;
vector<pii> pos[30][2];
int main()
{
ios::sync_with_stdio(false); cin.tie(0);
cin>>n;
cin>>s;
for(int i = 0; i < s.size(); i++)
{
pos[ s[i] - 'a' ][0].push_back(pii(i, 1));
pos[ s[i] - 'a' ][1].push_back(pii(i, -1));
tot[ s[i] - 'a' ] ++;
}
for(int a = 0; a < 26; a++)
{
for(int b = 0; b < 26; b++)
{
if(a == b) continue;
vector<pii> v(pos[a][0].size() + pos[b][1].size());
int ans = 0, best = 0, q1 = 0, q2 = 0;
merge(pos[a][0].begin(), pos[a][0].end(), pos[b][1].begin(), pos[b][1].end(), v.begin());
for(int p = 0; p < v.size(); p ++) sum[p] = (p > 0 ? sum[p - 1] : 0) + v[p].s;
for(int p = 0; p < v.size(); p ++)
{
if(!p) pref[p] = 0;
else pref[p] = min(pref[p - 1], sum[p - 1]);
}
for(int p = v.size(); p >= 0; p--)
{
if(p == v.size() - 1) suf[p] = sum[p];
else suf[p] = max(suf[p + 1], sum[p]);
}
for(int p = 0; p < v.size(); p++)
if(v[p].s == -1) ans = max(ans, suf[p] - pref[p]);
resp = max(ans, resp);
}
}
cout<<resp<<"\n";
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |