Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## ソースコード
- ```cpp
- #include<bits/stdc++.h>
- using namespace std;
- const int MAX_N=100;
- int f;
- int v[MAX_N];
- int N,R;
- void combination(int now,int cnt,int goal){
- if(cnt==goal){
- for(int i=0;i<N;i++)if(v[i])cout<<i;
- cout<<endl;
- return;
- }
- for(int i=now;i<N;i++){
- if(!(f&(1<<i))){
- v[i]=1;
- f|=(1<<i);
- combination(i+1,cnt+1,goal);
- v[i]=0;
- f&=~(1<<i);
- }
- }
- }
- void permutation(int now,int cnt,int goal){
- if(cnt==goal){
- for(int i=0;i<goal;i++)cout<<v[i];
- cout<<endl;
- return;
- }
- for(int i=0;i<N;i++){
- if(!(f&(1<<i))){
- v[now]=i;
- f|=(1<<i);
- permutation(now+1,cnt+1,goal);
- v[now]=-1;
- f&=~(1<<i);
- }
- }
- }
- int main() {
- cin>>N>>R;
- cout<<"permutation"<<endl;
- for(int i=0;i<N;i++)v[i]=-1;
- permutation(0,0,R);
- cout<<endl;
- cout<<"combination"<<endl;
- for(int i=0;i<N;i++)v[i]=0;
- combination(0,0,R);
- cout<<endl;
- return 0;
- }
- ```
- ## 実行例
- ```
- 4 2
- permutation
- 01
- 02
- 03
- 10
- 12
- 13
- 20
- 21
- 23
- 30
- 31
- 32
- combination
- 01
- 02
- 03
- 12
- 13
- 23
- ```
Add Comment
Please, Sign In to add comment