# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
885125 | 2023-12-09T03:10:41 Z | catlover | Difference (POI11_roz) | C++14 | 606 ms | 13588 KB |
#include <bits/stdc++.h> #define file(task) if(fopen(task".inp", "r")) { freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout); } #define FOR(i, a, b) for(int i = (a), _b = (b); i <= _b; ++i) #define FORD(i, a, b) for(int i = (a), _b = (b); i >= _b; --i) #define pb push_back #define SZ(X) (int)((X).size()) using namespace std; const int maxN = 1e6; int N; string s; vector<int> id[31]; void read_input() { cin >> N >> s; } void solve() { s = ' ' + s; FOR(i, 1, N) id[s[i] - 'a'].pb(i); int res = 0; FOR(x, 0, 25) { FOR(y, 0, 25) { if(id[x].empty() || id[y].empty()) continue; if(x == y) continue; vector<int> d {0}; int j = 0; for(int i : id[x]) { while(j < SZ(id[y]) && id[y][j] < i) { ++j; d.pb(-1); } d.pb(1); } while(j < SZ(id[y])) { ++j; d.pb(-1); } int cur = 0, last = 0, mn = 1e9; vector<int> f(SZ(d), 0); FOR(i, 1, SZ(d) - 1) { f[i] = f[i - 1] + d[i]; if(i > 1 && d[i] != d[i - 1]) { FOR(j, last, i - 2) mn = min(mn, f[j]); last = i - 1; } cur = max(cur, f[i] - mn); } res = max(res, cur); } } cout << res; } int main() { cin.tie(0)->sync_with_stdio(0); file("SSDIFF"); read_input(); solve(); return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
4 | Correct | 0 ms | 344 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 0 ms | 344 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 6 ms | 348 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 59 ms | 1112 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 5 ms | 348 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 596 ms | 8420 KB | Output is correct |
2 | Correct | 0 ms | 348 KB | Output is correct |
3 | Correct | 295 ms | 6360 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 586 ms | 8184 KB | Output is correct |
2 | Correct | 431 ms | 6884 KB | Output is correct |
3 | Correct | 150 ms | 7312 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 606 ms | 8228 KB | Output is correct |
2 | Correct | 65 ms | 13588 KB | Output is correct |
3 | Correct | 112 ms | 8220 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 586 ms | 8084 KB | Output is correct |
2 | Correct | 35 ms | 13320 KB | Output is correct |
3 | Correct | 187 ms | 7960 KB | Output is correct |