fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void printList(int n, const int* v)
  5. {
  6. for(int i = 0; i < n; i++)
  7. printf("%d ", v[i]);
  8. printf("\n");
  9. }
  10.  
  11. int main() {
  12. const int n = 6;
  13. int k = 3;
  14.  
  15. int* v = malloc(n * sizeof(int));
  16. for(int i = 0; i < k; i++)
  17. v[i] = 1;
  18. for(int i = k; i < n; i++)
  19. v[i] = 0;
  20.  
  21. printList(n, v);
  22. while(1)
  23. {
  24. int i;
  25. for(i = 0; i < n; i++)
  26. if(v[i] == 1)
  27. break;
  28. int leadingZeros = i;
  29. if(leadingZeros == n - k)
  30. break;
  31.  
  32. for(; i < n; i++)
  33. if(v[i] == 0)
  34. break;
  35. v[i] = 1;
  36.  
  37. for(int z = 0; z <= leadingZeros; z++) {
  38. i--;
  39. v[i] = 0;
  40. }
  41.  
  42. for(i--; i >= 0; i--) {
  43. v[i] = 1;
  44. }
  45.  
  46. printList(n, v);
  47. }
  48.  
  49. return 0;
  50. }
Success #stdin #stdout 0s 4840KB
stdin
Standard input is empty
stdout
1 1 1 0 0 0 
1 1 0 1 0 0 
1 0 1 1 0 0 
0 1 1 1 0 0 
1 1 0 0 1 0 
1 0 1 0 1 0 
0 1 1 0 1 0 
1 0 0 1 1 0 
0 1 0 1 1 0 
0 0 1 1 1 0 
1 1 0 0 0 1 
1 0 1 0 0 1 
0 1 1 0 0 1 
1 0 0 1 0 1 
0 1 0 1 0 1 
0 0 1 1 0 1 
1 0 0 0 1 1 
0 1 0 0 1 1 
0 0 1 0 1 1 
0 0 0 1 1 1