| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 889817 | vjudge1 | Chorus (JOI23_chorus) | C++17 | 0 ms | 348 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define ff first
#define ss second
#define all(a) a.begin(), a.end()
const int mod = 998244353;
const int N = 1e5;
int ans = INT_MAX;
int n, k;
vector<int> p;
string s;
deque<int> A, B, A1, B1;
vector<int> vec;
void f(int cursum, int last){
if(p.size() > k or cursum > n) return;
if(cursum == n){
if(p.size() == k){
int res = 0;
for(int sz : p){
int x = sz;
vec.clear();
while(x--){
vec.push_back(A.front());
A.pop_front();
}
x = sz;
while(x--){
int el = B.front();
B.pop_front();
for(int el1 : vec){
if(el1 > el){
res++;
}
}
}
}
A = A1, B = B1;
ans = min(ans, res);
return;
}
return;
}
for(int i = 1;i + cursum <= n; i++){
p.push_back(i);
f(cursum + i, i);
p.pop_back();
}
}
/*
5 2
AABABABBAB
*/
/*
10 3
ABABBBBABBABABABAAAA
* */
/*
5 3
AABABABBAB
* */
signed main(){
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin >> n >> k >> s;
for(int i = 0;i < 2*n; i++){
if(s[i] == 'A'){
A.push_back(i);
}else B.push_back(i);
}
A1 = A, B1 = B;
f(0, 1);
cout << ans;
return 0;
}
Compilation message (stderr)
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
