Submission #844889

# Submission time Handle Problem Language Result Execution time Memory
844889 2023-09-06T07:08:58 Z vjudge1 Nivelle (COCI20_nivelle) C++17
110 / 110
451 ms 856 KB
#include <bits/stdc++.h>
#define fast cin.tie(0)->sync_with_stdio(0);
#define int long long
#define inf ((int)1e18)
#define N 200005
using namespace std;

int32_t main(){
	fast
	int n;
	cin>>n;
	string s;
	cin>>s;
	double mn = 100, L = 0, R = 0;
	for(int i = 1; i <= min(n, 26ll); i++) {
		map <int, int> mp;
		int l = 0;
		for(int j = 0; j <= n; ) {
			if(mp.size() < i) {
				if(!mp.count(s[j]))
					mp.insert({s[j], 0});
				mp[s[j]]++;
				j++;
				continue;
			}

			double val = ((double) mp.size()) / (j - l);
			if(val < mn) {
				mn = val;
				L = l;
				R = j - 1;
			}
			if(!mp.count(s[j]))
				mp.insert({s[j], 0});
			mp[s[j]]++;
			j++;
			if(mp.size() > i) {
				j--;
				if(mp[s[l]] == 1)
					mp.erase(s[l]);
				else 
					mp[s[l]]--;

				if(mp[s[j]] == 1)
					mp.erase(s[j]);
				else 
					mp[s[j]]--;
				l++;
			}
		}
	}
	cout<<++L<<" "<<++R<<"\n";
}

Compilation message

nivelle.cpp: In function 'int32_t main()':
nivelle.cpp:19:17: warning: comparison of integer expressions of different signedness: 'std::map<long long int, long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   19 |    if(mp.size() < i) {
      |       ~~~~~~~~~~^~~
nivelle.cpp:37:17: warning: comparison of integer expressions of different signedness: 'std::map<long long int, long long int>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   37 |    if(mp.size() > i) {
      |       ~~~~~~~~~~^~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 1 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 9 ms 348 KB Output is correct
2 Correct 8 ms 348 KB Output is correct
3 Correct 11 ms 456 KB Output is correct
4 Correct 8 ms 344 KB Output is correct
5 Correct 10 ms 348 KB Output is correct
6 Correct 10 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 32 ms 604 KB Output is correct
2 Correct 34 ms 852 KB Output is correct
3 Correct 31 ms 600 KB Output is correct
4 Correct 32 ms 604 KB Output is correct
5 Correct 32 ms 604 KB Output is correct
6 Correct 35 ms 604 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 76 ms 604 KB Output is correct
2 Correct 73 ms 604 KB Output is correct
3 Correct 72 ms 600 KB Output is correct
4 Correct 75 ms 644 KB Output is correct
5 Correct 76 ms 604 KB Output is correct
6 Correct 83 ms 640 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 408 ms 856 KB Output is correct
2 Correct 410 ms 648 KB Output is correct
3 Correct 392 ms 644 KB Output is correct
4 Correct 400 ms 604 KB Output is correct
5 Correct 417 ms 644 KB Output is correct
6 Correct 451 ms 852 KB Output is correct