(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.

Submission #686663

#TimeUsernameProblemLanguageResultExecution timeMemory
686663Farhan_HYNivelle (COCI20_nivelle)C++14
110 / 110
182 ms1488 KiB
#include <bits/stdc++.h> #define int long long #define F first #define S second #define T int t; cin >> t; while(t--) #define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); using namespace std; const int N = 1e6 + 5; const int M = 1e3 + 3; const int inf = 1e18; const int mod = 1e9 + 7; int n, fst[27]; string s; deque<int> pos[27]; main() { IOS cin >> n >> s; s = '.' + s; for(int i = 1; i <= n; i++) pos[s[i] - 'a'].push_back(i); for(int i = 0; i < 27; i++) if (pos[i].size()) fst[i] = pos[i].front(); else fst[i] = n + 1; double ans = 2.0; int l = 0, r = 0; for(int i = 1; i <= n; i++) { int j = i, cnt = 0; while(1) { int c = 26; for(int k = 0; k < 26; k++) { if (fst[k] > j && fst[k] < fst[c]) c = k; } cnt++; j = fst[c] - 1; double cur = double(cnt) / (j - i + 1.0); if (cur < ans) { l = i, r = j; ans = cur; } if (j == n) break; j++; } pos[s[i] - 'a'].pop_front(); if (pos[s[i] - 'a'].size()) fst[s[i] - 'a'] = pos[s[i] - 'a'].front(); else fst[s[i] - 'a'] = n + 1; } cout << l << ' ' << r; }

Compilation message (stderr)

nivelle.cpp:17:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   17 | main() {
      | ^~~~
#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...