QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#69058 | #5246. Nawiasowe podziały [B] | sysia | 1 | 2939ms | 10884kb | C++20 | 3.9kb | 2022-12-23 02:35:38 | 2022-12-23 02:35:40 |
Judging History
answer
//Sylwia Sapkowska
#include <bits/stdc++.h>
using namespace std;
void __print(int x) {cerr << x;}
void __print(long long x) {cerr << x;}
void __print(long double x) {cerr << x;}
void __print(char x) {cerr << '\'' << x << '\'';}
void __print(const char *x) {cerr << '\"' << x << '\"';}
void __print(const string &x) {cerr << '\"' << x << '\"';}
void __print(bool x) {cerr << (x ? "true" : "false");}
template<typename T, typename V>
void __print(const pair<T, V> &x) {cerr << '{'; __print(x.first); cerr << ", "; __print(x.second); cerr << '}';}
template<typename T>
void __print(const T &x) {int f = 0; cerr << '{'; for (auto &i: x) cerr << (f++ ? ", " : ""), __print(i); cerr << "}";}
void _print() {cerr << "]\n";}
template <typename T, typename... V>
void _print(T t, V... v) {__print(t); if (sizeof...(v)) cerr << ", "; _print(v...);}
#ifndef ONLINE_JUDGE
#define debug(x...) cerr << "[" << #x << "] = ["; _print(x)
#else
#define debug(x...)
#endif
#define int long long
typedef pair<int, int> T;
const int oo = 1e18, oo2 = 1e9+7, K = 30;
const int mod = 998244353;
struct TreeMin{
vector<int>tab;
int size = 1;
TreeMin(int n, vector<int>&a){
while (size < n) size*=2;
tab.assign(2*size, oo);
for (int i = 1; i<(int)a.size(); i++) tab[i+size] = a[i];
for (int i = size-1; i>=1; i--) tab[i] = min(tab[2*i], tab[2*i+1]);
}
int query(int l, int r){
int ans = oo;
for (l += size-1, r += size+1; r-l>1; l/=2, r/=2){
if (!(l&1)) ans = min(ans, tab[l+1]);
if (r&1) ans = min(ans, tab[r-1]);
}
return ans;
}
};
void solve(){
int n, k; cin >> n >> k;
string s; cin >> s;
s = '$'+s;
vector<int>B(n+1), prev(2*n+2, -1), which(n+1);
int rep = 1;
for (int i = 1; i<=n; i++) B[i] = B[i-1] + (s[i] == '(' ? 1 : -1);
// debug(B);
TreeMin t(n+2, B);
int offset = n;
for (int i = 0; i<=n; i++){
if (prev[B[i]+offset] == -1){
which[i] = rep++;
} else {
if (t.query(prev[B[i]+offset], i) >= B[i]){
which[i] = which[prev[B[i]+offset]];
} else {
which[i] = rep++;
}
}
prev[B[i]+offset] = i;
}
// debug(which);
auto C2 = [&](int x){return x*(x-1)/2;};
auto count = [&](int lambda){
int ans = 0;
vector<int>cnt(n+1);
vector<T>dp(n+1, {oo, oo});
dp[0] = {0, 0};
int L = 0, R = 0;
cnt[which[0]]++;
auto add = [&](int idx){
ans -= C2(cnt[which[idx]]);
cnt[which[idx]]++;
ans += C2(cnt[which[idx]]);
};
auto remove = [&](int idx){
ans -= C2(cnt[which[idx]]);
cnt[which[idx]]--;
ans += C2(cnt[which[idx]]);
};
auto fit = [&](int l, int r){
l--;
// debug(ans);
while (R < r) add(++R);
while (L > l) add(--L);
while (L < l) remove(L++);
while (R > r) remove(R--);
// debug(ans);
};
function<void(int, int, int, int)>rec2 = [&](int a, int b, int c, int d){
if (a > b) return;
T mn = {oo, oo};
int opt = oo;
int mid = (a+b)/2;
for (int i = c; i <= min(mid-1, d); i++){
// debug(L, R);
fit(i+1, mid); //i
// debug(L, R);
// exit(0);
int curr = dp[i].first + ans + lambda;
if (curr <= mn.first){
opt = i;
mn = min(mn, {curr, dp[i].second+1});
}
}
// debug(mid, mn);
dp[mid] = min(dp[mid], mn);
rec2(a, mid-1, c, opt);
rec2(mid+1, b, opt, d);
};
//dp[i] = {min wynik, min k}
function<void(int, int)> rec = [&](int a, int b){
if (a >= b) return;
int mid = (a+b)/2;
rec(a, mid);
rec2(mid+1, b, a, mid);
rec(mid+1, b);
};
rec(0, n);
return dp[n];
};
int l = 0, r = oo2, ans = oo2;
// count(1);
// exit(0);
while (r >= l){
int mid = (l+r)/2;
T curr = count(mid);
// debug(mid, curr);
if (curr.second <= k){
ans = mid;
r = mid-1;
} else l = mid+1;
}
// debug(ans);
T ret = count(ans);
cout << ret.first - ret.second * ans << "\n";
}
int32_t main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 3ms
memory: 3508kb
input:
1 1 (
output:
29
result:
wrong answer 1st lines differ - expected: '0', found: '29'
Subtask #2:
score: 0
Wrong Answer
Test #16:
score: 0
Wrong Answer
time: 2ms
memory: 3384kb
input:
300 25 ((()()()(()())(((())())()))()((()(())))((()()))((()()))()()(((())())))((((())(()()()())(((()))(()())()(())())()()()()())(()((()()()))))(())()((()))((()))(()(()())))((()(())(((()))))((()()()()()())())(((()))()()()(())())(())()(((()))()((()()())))((())())(((()())())((()))(()()()()(())(()())((()...
output:
106
result:
wrong answer 1st lines differ - expected: '90', found: '106'
Subtask #3:
score: 0
Wrong Answer
Test #33:
score: 1
Accepted
time: 64ms
memory: 3524kb
input:
4000 1 (((((())())()((())(())(()()())()())(()(())(()))()(()))(()((())()()()()(()())(()()()))()(())()()(()(()()())))(()))(()(((()))()())((())(()()(()()))))((()((()())())((())())((()()))(())(())(()(()()))(((())())())((())()()(()))(()()()(()(())(()))()())((()))((())()(())()())))(((()(()()()()())(())())...
output:
5599
result:
ok single line: '5599'
Test #34:
score: 0
Accepted
time: 63ms
memory: 3424kb
input:
4000 3 (((((((())))()()((((())(())()())()())(()(()())())))(()((())()((()()()((())()()))()))(())(()(()))()(()()()()((()(()))())()((()()()))(())(()()((())())))))(()(((((())))())((()()(((()()))())())())(())(()())(((()))())(()((()()()))(((()))())())())((())(())((())(())()(())()(((()))((())))))(((((())))...
output:
4568
result:
ok single line: '4568'
Test #35:
score: 0
Accepted
time: 65ms
memory: 3512kb
input:
4000 8 (((()))((()()(()())(()())((()))(((())))))(((())()(())()()()()((())())())((())()((())()))()(((())())()())(((()()()))(()()()(())(()))))(()()((()))((()())())((())(())()(())))(((((()()()())))(()()(()()())()()))()((())(()(()))((())()())((()()))()())(((())())()((()())(()()(())())()()((())))(())()((...
output:
4780
result:
ok single line: '4780'
Test #36:
score: 0
Accepted
time: 65ms
memory: 3572kb
input:
4000 21 (((((()())(())()))(()(())((((())())))()((()))()(()())()((())()())()()((((()))))))(((((()())()()()))((()))())((()))(()()(()))(()()((())))(())((()()())())(()()(())))(((())(()((())))()()(())(()((()()())(()))(()))))((()()((()()()())()())(()((()()()())())))(()()(((())()())()()((())(()))()(()))()(...
output:
3864
result:
ok single line: '3864'
Test #37:
score: -1
Wrong Answer
time: 61ms
memory: 3436kb
input:
4000 55 ((((()))((((()())))())(())((()()())((()))(()()(()((())()((())))()())(()))((()())(()())()()))))((((())))(()()(((())())())()((()))(()(()(()))(())())())((((()())(((()))())())((())())(()((()(())()(()())))()(()()(())))))(((((())()))((()())(())()()(())()()(()())())(()()(())((()()()))))))((()(())((...
output:
2963
result:
wrong answer 1st lines differ - expected: '2909', found: '2963'
Subtask #4:
score: 0
Wrong Answer
Test #54:
score: 1
Accepted
time: 60ms
memory: 3456kb
input:
4000 2 ((())(()(())))()((())()()()(())()()(())()((()))()()((()()))((())())((())())(()())()(())(()(()))((()())())(()())((()()))(()()())((()))()())(()(()))((()()())(())()((())()))(())((())((())))(((()(())))()(())())(()(())(())())((())(())())((()(()))()()()()(()())())(((()))(())())((()())())((())()((()...
output:
18432
result:
ok single line: '18432'
Test #55:
score: 0
Accepted
time: 66ms
memory: 3604kb
input:
4000 5 (((((((()))(())(()(())()()(())(()))()()(((()))())()(()))(((()(()()))()())()()(()(())()(())))((()()()())(((())))((()())()(()()())()()()())()()(()(()))))())((()()())((((((()))()())(()())())())()((()()()(()()((()))()()())(())()())()()()))(())())()(((((()()(()(())()()))))((()()((())())((()())))((...
output:
4336
result:
ok single line: '4336'
Test #56:
score: 0
Accepted
time: 66ms
memory: 3492kb
input:
4000 13 (((((()()))(()()(()((())(()()()))(()))(((()()(()()))()())((())()())()())((()()(())())((()()()()))(())()(())())()((()(())())()()()()())((()(()()()(()())))(()()))(((())(()()))()(())))))()((())((((()()())(()()))(())((()((())))())()(((())()()(()()())(()))()(((()))(((())()()(())))))(((()())))(()(...
output:
3928
result:
ok single line: '3928'
Test #57:
score: -1
Wrong Answer
time: 66ms
memory: 3652kb
input:
4000 34 (((((()())()(((()())()(()(()))(())(((())))()))(()()(()(()(()))))((((()))))((()))(((()()(())))()()(())((()))))()(()(())()()((())))()(()((()))())()((())((((()(()))(()())()()(()(())(())))(()()()())))(()()))((()))((((()()))(((()))))))((((()))((()()())())()(((((())))()(())))())(((())))()((((())))...
output:
3309
result:
wrong answer 1st lines differ - expected: '3285', found: '3309'
Subtask #5:
score: 1
Accepted
Test #75:
score: 1
Accepted
time: 2741ms
memory: 10884kb
input:
100000 3 (()((())(()))(())((()())))(((()()))(()))(()()()((())))()()((())(())((())(()(()))())((())))()()((())(()()))(((())))((())()(()())(()())()(()(()()())))(()(()()))()(()((())()()()()())((()))(())(())())(((()))()(()()())()(()()))((()()))(((()()()()))(()))(((())))(((()))(()()())(()(()()))(())(()())...
output:
3832013
result:
ok single line: '3832013'
Test #76:
score: 0
Accepted
time: 2624ms
memory: 10884kb
input:
100000 9 (((((())(((())))(()))(()(()))((()()()))()(())(()))(((()()(()))))(()((()()))()(((()))((())))(())(()))(((()())(())((())))(()))()()(()((()))()(()(()())))((()(()))(()()((()())))((()(())())()((()))(()))()(()))((()((())))())(((()(())))()(((()())()()())(())()()(()(())(()())())))((()))(((()())()()(...
output:
131464
result:
ok single line: '131464'
Test #77:
score: 0
Accepted
time: 2752ms
memory: 10696kb
input:
100000 15 ()((()(()()))()(())(()))(((()))()((())(())(())(()())))(()()()())(()((())))()(((()))()(()(()))((()))(()))(()((())()()()(()))(())(())(()())(()()))(()(())(())(()()))(((())(())))(())(()()()()()()(()))((()()())())((()))(((())()()()))((())())()((())(())(())()()(()))((()()(()))()()()())()(()())((...
output:
1352858
result:
ok single line: '1352858'
Test #78:
score: 0
Accepted
time: 2650ms
memory: 10852kb
input:
100000 21 ((((())()(()()()((())))((())(())))((()()((((())()))()(()()()())()(()())(()(()))))(((()())(())()()((())))))()((()(()()())()(()()(()()((()))))))()(((((())())())((()())(())()()(())()()()))(()))()(((((()())()))((()()))))(((())(())())(()(())((()))))()((((()()())())))()(((())()()()(()(()()()))))...
output:
120911
result:
ok single line: '120911'
Test #79:
score: 0
Accepted
time: 2939ms
memory: 10744kb
input:
100000 27 ((()))(()(()))()(())((())())((())()(())())((())())()()(()()())(())(()(()())()(())(())(()()))((())()(()))(()(())()(()()))()(()(()(())()())()(()))((()())()(()())(((()))))((()))(())()((()()()())()(()()())((())())()()((())())(()()()))(()()(())())(()()(()()))(((()))(())()())(())()(()(()()()))((...
output:
1866778
result:
ok single line: '1866778'
Test #80:
score: 0
Accepted
time: 2667ms
memory: 10740kb
input:
100000 1 )))))()))(()()()()((())(()()()))())())(()()()((()))()(())(((()))((())())()((((()))()()((()((()(()))())))(()))))()()())(()(())()))(()(()((()(())((((()((()())()))())())(((((((())())))(())))((()(())()(((((()()(()(()))(()))(())))()())()))))((()())))()))(()()))(((())(()(()()()(()))(((((((())()()...
output:
99830
result:
ok single line: '99830'
Test #81:
score: 0
Accepted
time: 2672ms
memory: 10832kb
input:
100000 3 ((((()(((()()))((())())))(()((()))()(()())(())((())())())()(((((()))()(())))(())(((()((((())())()((()(()(()))()))))()(()()))()))(())(()())())(()()))(()))())((())()(())())())())(()))((((()())(()))))())(()))(()(()())(()())()()())(((((()())())((((()(())()()()))(()(()()((())((())()(((()(()))(()...
output:
96717
result:
ok single line: '96717'
Test #82:
score: 0
Accepted
time: 2662ms
memory: 10744kb
input:
100000 7 )((()((()(()(()())()))()))(((())))(()()))()))(())))))()()))()))))()))())(((()))(()(())(()())()))()(())(((((()())(()(())())))())((((()()(()(((((((()(()((((())()))()()())))))())())()((((())())(()(((()()(())((((((())(()()()))))())())))(((((()()()())(()(()(())((((())))()))))())())()))()(()((())...
output:
95714
result:
ok single line: '95714'
Test #83:
score: 0
Accepted
time: 2723ms
memory: 10760kb
input:
99996 28 ()())((()))()()())))()))))))(()(())()))(()((()())()()))()))()))))())((((()))(()))()()))(()()()((()))(())((()(())))(((())))()()())(((((()((((()(()))(((()(((((()))((((()((()(())()))(())(())()(()))((()())(((()()))))((()()(((()()))()())()()(()(())((()()(())((((())(())(()))()))()()))(()()(()())(...
output:
91255
result:
ok single line: '91255'
Test #84:
score: 0
Accepted
time: 2727ms
memory: 10816kb
input:
100000 30 ))(()()())))()())((())))())(((((()))()))()))(())()((()()))(((())))())()((((((()(((()())(())(()())()(())((()()()))(())(((())((()()()))(())))((())((())())))))()())())(()()))(()()()(()((((((()(()((())())())((((())()(())())((((())()())())((()))())()))))()()))()(()))(((())())((()()(())())()(()(...
output:
91102
result:
ok single line: '91102'
Test #85:
score: 0
Accepted
time: 2657ms
memory: 10864kb
input:
99990 2 ((())()()()()()()())(()())(())(()(())())((())())()((()(()))(()))(()())(()(()))((()()(()()))()()(())()(())(()())())()(()()(())(())(()))((()))(()()(())(())(()))(((())))(()()(())()((())(())))()(()()(()()))()((()))()()((())()())(()(()))(())(()(()))(((()))())(())(())(())((()))(()()())(()()()())()...
output:
94531
result:
ok single line: '94531'
Test #86:
score: 0
Accepted
time: 2750ms
memory: 10864kb
input:
99998 5 ((((())((((((())(()())(((()())(()))(()())((()())))))()(((()))(())((((())((()(())())((()))))))))((())(())(()))))))((()(()()())(((()()())(())())((((()))((())))(((((())()())(()))(((()))()))((()())))))))(((((((((((()())())(()()(((()()()))))))))(((()())))(((())()())((((()))))((()))))(((((())))()(...
output:
855997
result:
ok single line: '855997'
Test #87:
score: 0
Accepted
time: 2716ms
memory: 10768kb
input:
100000 15 (())(()()(())()())()(())(())((()())())(((()))()()()()()()(())()()()())(()()()()()())()(()()())(())((()())()())(())()(()()(())(())()()()())(())()(())()(()())(())(()())()(()()()(())())()((()))()(()(()))()(()()()(())()()())((()))(()()()(()()))((())())(()()()()())((()()()))((())()(())()())(())...
output:
337304
result:
ok single line: '337304'
Test #88:
score: 0
Accepted
time: 2727ms
memory: 10760kb
input:
99992 29 (((((((((()()())(((()))(())))((()((()))())))(((())(()()())())(())()))(((()(())())((()()))(((()())))))())((((((((((()((()()()))(()))(()()())((((())()())())))((((((()())()((()()(()))((())((()()))(((()()))))))(()())))(((((()((()()))())((()()))))(((((())(())(()))()))))((((((())((()))))))((((()(...
output:
285381
result:
ok single line: '285381'
Subtask #6:
score: 0
Wrong Answer
Test #89:
score: 1
Accepted
time: 2624ms
memory: 10816kb
input:
100000 6 ((((()()((())))()((()())()())((())()(((()()))())((())((()()()))()()()(())))(((()(())(()()))(())())(())))(((()))((((())))()))(()((())(())(())((()())))(()(()(()))(())(()()()(())())(()(())(()(()))(()())()((()))()()))(()()(())))((()())()((())((())()()(((()))(())))((())())()((()())(()))))()(((()...
output:
126039
result:
ok single line: '126039'
Test #90:
score: 0
Accepted
time: 2662ms
memory: 10820kb
input:
100000 12 ((()((())(((()))()())()()((()))())((((()()))()()))))(((())(()))(((((())))((())))(()()((()()()))((())()()((()(())((()))()()))())(()((()())())(()()(()))())()(()(())(())))()((()(()))((()))()((()()((())(())))))())(((()()))(()((()()))()(((()()()())()())))())(()((()())(())()(((()()))(()()()()))(...
output:
130680
result:
ok single line: '130680'
Test #91:
score: 0
Accepted
time: 2747ms
memory: 10880kb
input:
100000 18 ((())(()()()()())()()(())((())()()()())()()()()((()()())((()))()()(()())()()()())(()())()(()(())))(()()((()()))(())()()(()())()(()())((()())()()(())()())((())(()))(()()()))((())(()())()(((())))(()(()))(()(()))()(())()(((())())()()())((())))((()())((()())))((()))(()(()()()()((())))()(()))((...
output:
525576
result:
ok single line: '525576'
Test #92:
score: -1
Wrong Answer
time: 2683ms
memory: 10884kb
input:
100000 24 ((((((())()((())))()()(())((()())())()()(((()))()()(((())))())(()())(()(()()(())((()())(()())))(()())()(()(())()())(()((()))))()(((()(()()))())())((()))()()(()(()))())((()()()()(()(()))(()))()(()))()(((()))(()()(()(()))())()((()()())()((())(())((())(())()()())()())((())))()((()())((()()()(...
output:
118889
result:
wrong answer 1st lines differ - expected: '118587', found: '118889'
Subtask #7:
score: 0
Wrong Answer
Test #103:
score: 1
Accepted
time: 2103ms
memory: 9688kb
input:
80000 81 ((((((()())((()((()))))(()())()(()(((()(()())(()())())(())))()(())(()()))()))(((()(()))((()))(())((((())))(())()((()))())((()(()())))(())(()()))(((()()))(()((())))())()(((()()))(()())()()(((()((()))(())))((())(()((())))())(()())))()()()((()()(()()(())()()((()))(())()))((()(())()()))(()(()()...
output:
87799
result:
ok single line: '87799'
Test #104:
score: -1
Wrong Answer
time: 2197ms
memory: 9620kb
input:
80000 729 (((())(()))(()()())(()(()))(()())(()()()())(((()()())))()(()()()(()())))(((())((()()())))())((()(())()()())((()()()))()(()()()())()()(((())(()))(()())()()()(())))((()))((()())()(()()())(()()()()())(())(((()))(()(()())())())(()()())(()(())()()()()(())())()())(((())()))(((()())(())()(())((()...
output:
76930
result:
wrong answer 1st lines differ - expected: '76309', found: '76930'
Subtask #8:
score: 0
Wrong Answer
Test #129:
score: 1
Accepted
time: 2313ms
memory: 9684kb
input:
79856 243 (())()(())(())(()()())()(())()(()())()(())()(())()((()))(())(()(())())()(()())()()(())(())((()()))(())(()()())(()())((()())()())(())()()(())()(())((()()))()()(()()())(())()()(()())(())(())((()))(())(())()()()()()(()(()))(()(())()(()))()()()()()()()()((()()))()()()()()(())()(())(()())()(()(...
output:
794572
result:
ok single line: '794572'
Test #130:
score: -1
Wrong Answer
time: 2140ms
memory: 9804kb
input:
79156 2187 ((((((())))((()))()(()(())()()())(()))((()(())()))((((())()))(()(((()()))())(()())(())(())(()()(())(()))(((())))(()()))()(((()()()))(()(()())))(((())(()(()))(())()())()()(())))((())()(())())(((()()()()())(())(())()((((()))(())())))((()(()()))((()()))())(())(()(()(()))()()()())((()()())())...
output:
44475
result:
wrong answer 1st lines differ - expected: '43675', found: '44475'
Subtask #9:
score: 0
Wrong Answer
Test #155:
score: 1
Accepted
time: 2593ms
memory: 10884kb
input:
99599 64 ((((((()(((())()))))((((((()))()())())())(()(()(()())))(()(()()(())())((()(()()))((()))()(())()())()(()(())()((()()())()())()(((())()))(()))((())(()(())()))(()))())()(((())(((())()((())))())(()()(()))(()())()((())((()())()(())())(())()(())((())(()()(()))((()))(()()())))()(((()))(())))(())((...
output:
110447
result:
ok single line: '110447'
Test #156:
score: -1
Wrong Answer
time: 2630ms
memory: 10808kb
input:
100000 1024 ((((((((()()))(((()()()(((())())))()(((())))((())()(()()())(()()))((()())(())()()))))(((((())())()))))(((((((()))))())(((())()()((())))((()()))())()(()()())((()()(((()))()())(()(()()))()((()(()))(())()(())()()(()())())()((()))(())())()()))())(((()()((()(())()))(()))((()())((()()()))()(()...
output:
75986
result:
wrong answer 1st lines differ - expected: '74496', found: '75986'
Subtask #10:
score: 0
Wrong Answer
Test #181:
score: 0
Wrong Answer
time: 2722ms
memory: 10764kb
input:
100000 256 ((((())()(())())(((()))()((())()(()(())))))(((()(()))(((()))()()()()))()((((()))(())((()))))((()))(()((()()()()())()())(())(())()()(()()))(((()()))))())((((()))()((())()(()(())((()))))()((()()()()((()))))()(()(()()(()(())(()))))(())(((())))((()()((()))()())()())()((()())))()(((((()()))))(...
output:
107738
result:
wrong answer 1st lines differ - expected: '107402', found: '107738'