QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#69058#5246. Nawiasowe podziały [B]sysia1 2939ms10884kbC++203.9kb2022-12-23 02:35:382022-12-23 02:35:40

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-12-23 02:35:40]
  • 评测
  • 测评结果:1
  • 用时:2939ms
  • 内存:10884kb
  • [2022-12-23 02:35:38]
  • 提交

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'