Submission #620764

# Submission time Handle Problem Language Result Execution time Memory
620764 2022-08-03T08:53:15 Z dozer Diversity (CEOI21_diversity) C++14
4 / 100
1594 ms 1236 KB
#include <bits/stdc++.h>
using namespace std;
#define fastio() cin.tie(0), ios_base::sync_with_stdio(0)
#define sp " "
#define endl "\n"
#define pb push_back
#define pii pair<int, int>
#define st first
#define nd second
#define N 100005
#define modulo 1000000007

int arr[N], cnt[N];


int f(int sz, int n, int mask, int ind)
{
	if (ind > sz) return 0;
	int ans = modulo;
	for (int i = 0; i < n; i++)
	{
		if (mask & (1<<i)) continue;
		int fin = ind + cnt[i + 1] - 1;
		int tmp = (sz * (sz + 1)) / 2 - (((ind - 1) * ind) / 2 + ((sz - fin) * (sz - fin + 1)) / 2);
		ans = min(ans, tmp + f(sz, n, mask | (1<<i), fin + 1));
	}
	return ans;
}

int32_t main()
{
	fastio();

	int n, q;
	cin>>n>>q;
	for (int i = 1; i <= n; i++)
		cin>>arr[i];

	while(q--)
	{
		memset(cnt, 0, sizeof(cnt));
		int l, r;
		cin>>l>>r;
		map<int, int> val;
		int counter = 1;
		for (int i = l; i <= r; i++)
		{
			if (val[arr[i]] == 0)
			{
				val[arr[i]] = counter;
				counter++;
			}
			cnt[val[arr[i]]]++;
		}
		int res = f(r - l + 1, counter - 1, 0, 1);
		cout<<res<<endl;
	}
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB Output is correct
2 Correct 1 ms 724 KB Output is correct
3 Correct 1 ms 596 KB Output is correct
4 Correct 1 ms 596 KB Output is correct
5 Correct 1 ms 596 KB Output is correct
6 Correct 1 ms 724 KB Output is correct
7 Correct 2 ms 596 KB Output is correct
8 Correct 13 ms 712 KB Output is correct
9 Correct 134 ms 704 KB Output is correct
10 Correct 1594 ms 704 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 724 KB Output is correct
2 Correct 1 ms 724 KB Output is correct
3 Correct 3 ms 724 KB Output is correct
4 Incorrect 20 ms 1236 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 724 KB Output is correct
2 Correct 1 ms 724 KB Output is correct
3 Correct 3 ms 724 KB Output is correct
4 Incorrect 20 ms 1236 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 724 KB Output is correct
2 Correct 1 ms 724 KB Output is correct
3 Correct 3 ms 724 KB Output is correct
4 Incorrect 20 ms 1236 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB Output is correct
2 Correct 1 ms 724 KB Output is correct
3 Correct 1 ms 596 KB Output is correct
4 Correct 1 ms 596 KB Output is correct
5 Correct 1 ms 596 KB Output is correct
6 Correct 1 ms 724 KB Output is correct
7 Correct 2 ms 596 KB Output is correct
8 Correct 13 ms 712 KB Output is correct
9 Correct 134 ms 704 KB Output is correct
10 Correct 1594 ms 704 KB Output is correct
11 Correct 1 ms 724 KB Output is correct
12 Correct 1 ms 724 KB Output is correct
13 Correct 3 ms 724 KB Output is correct
14 Incorrect 20 ms 1236 KB Output isn't correct
15 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 596 KB Output is correct
2 Correct 1 ms 724 KB Output is correct
3 Correct 1 ms 596 KB Output is correct
4 Correct 1 ms 596 KB Output is correct
5 Correct 1 ms 596 KB Output is correct
6 Correct 1 ms 724 KB Output is correct
7 Correct 2 ms 596 KB Output is correct
8 Correct 13 ms 712 KB Output is correct
9 Correct 134 ms 704 KB Output is correct
10 Correct 1594 ms 704 KB Output is correct
11 Correct 1 ms 724 KB Output is correct
12 Correct 1 ms 724 KB Output is correct
13 Correct 3 ms 724 KB Output is correct
14 Incorrect 20 ms 1236 KB Output isn't correct
15 Halted 0 ms 0 KB -