[도전기록] 경기 전공의 전형적인 90문두 번째 문제.

※ 학습 중이기 때문에 시찰 등은 추후 추가될 수 있습니다.

문제.


https://atcoder.jp/contests/typical90/tasks/typical90_b

생각


4
  • n은 비교적 작지만 비트 전체 탐색을 하지 못했다.
    4
  • 순서가 상관이 있기 때문에 반드시 높은 위치에서 수치를 판정해야 한다는 것을 알아차리지 못해 벌레를 제거하는 데 많은 시간이 걸렸다
  • 답안


    보고 풀었어.
    #include <bits/stdc++.h>
    #include <atcoder/all>
    #include <vector>
    #include <cstdint>
    #define FOR(i,l,r) for(int i=(l);i<(r);++i)
    #define RFOR(i,l,r) for(int i=(l);i>=(int)(r);i--)
    #define rep(i,n)  FOR(i,0,n)
    #define rrep(i,n)  RFOR(i,n-1,0)
    
    #define int long long
    #define ll long long
    using namespace std;
    using namespace atcoder;
    const ll MX = 1e6;
    const ll inf = 1e13;
    const int mod = 1000000007;
    
    signed main() {
        int n;
        cin>> n;
        if(n%2==1) {
            return 0;
        }
        rep(i,1<<n-1) {
            int x = 0;
            rep(j,n) {
                int now = (i>>n-1-j)&1;
                if(now>0)x--;
                if(now==0)x++;
                if(x<0 || x>n/2) {
                    break;
                }
            }
            if(x==0) {
                rep(j,n) {
                    int now = (i>>n-1-j)&1;
                    if(now>0) cout << ")";
                    if(now==0) cout << "(";
                }
                cout << "" << endl;
            }
        }
    
        return 0;
    }
    

    좋은 웹페이지 즐겨찾기