(UPD: 2024-12-04 14:48 UTC) Judge is not working due to Cloudflare incident. (URL) We can do nothing about it, sorry. After the incident is resolved, we will grade all submissions.

제출 #229230

#제출 시각아이디문제언어결과실행 시간메모리
229230VEGAnnNivelle (COCI20_nivelle)C++14
110 / 110
239 ms11000 KiB
#include <bits/stdc++.h> #define all(x) x.begin(),x.end() #define PB push_back using namespace std; typedef long long ll; const int N = 100100; const int M = 1000100; const int oo = 1e9; string s; int n, pf[N][26], ansf, anss, se, fi; int calc(int l, int r){ int res = 0; for (int i = 0; i < 26; i++) res += bool(pf[r][i] - pf[l - 1][i]); return res; } bool smaller(ll x, ll y, ll a, ll b){ return x * b < a * y; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); // freopen("in.txt","r",stdin); cin >> n >> s; for (int i = 1; i <= n; i++){ for (int j = 0; j < 26; j++) pf[i][j] = pf[i - 1][j]; pf[i][s[i - 1] - 'a']++; } ansf = oo; anss = 1; fi = se = -1; for (int kol = 1; kol < 27; kol++){ int j = 1; for (int i = 1; i <= n; i++){ while (j <= i && calc(j, i) > kol) j++; if (calc(j, i) == kol && smaller(kol, i - j + 1, ansf, anss)){ ansf = kol; anss = i - j + 1; fi = j; se = i; } } } cout << fi << " " << se; 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...