链接:https://ac.nowcoder.com/acm/contest/9981/B
来源:牛客网
请你构造一个非空的括号字符串,包含正好 kkk 个不同合法括号对。
所谓括号字符串,是指由'('和')'这两种字符构成的字符串。
要求构造的字符串长度不超过100000 100000100000。
#include<bits/stdc++.h> using namespace std; int main () { int k; scanf("%d",&k); if (k==0) return printf("("),0; for (int i=1;i<=sqrt(k);i++) { int x=i; int y=k/i; int tt=x*y; if (tt<=k&&x+y<=1e5&&k%tt<=y) { for (int i=1;i<=x;i++) printf("("); int p=k%tt; for (int i=1;i<=y;i++) { printf(")"); if (y-i==p) printf("("); } return 0; } } }