Nowcoder9981B.括号(构造)

链接: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;
        } 
    }
}

 

posted @ 2021-02-01 21:41  zlc0405  阅读(67)  评论(0编辑  收藏  举报