💪
【チャレンジ記録】競プロ典型 90 問_2問目
※勉強中のため、考察など後ほど付け加える可能性があります。
問題
考えたこと
- nが小さいが、bit全探索までいけなかった
- 順番が関係するため、高い位から値を判定していかなければならないことに気づかず、バグ取りに時間がかかってしまった。
解答
twitterを見てから解答した。
#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;
}
Discussion