Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int v[6], n, m;
- FILE *g;
- void Init(int k) {
- v[k] = 0;
- }
- int Succesor(int k) {
- if (v[k] < n) {
- v[k]++;
- return 1;
- }
- return 0;
- }
- int Valid(int k) {
- return 1;
- }
- int Solution(int k) {
- return (k == m/2);
- }
- void Print() {
- int i,j;
- if (m & 1) {
- for (j = 1; j <= n; j++) {
- for (i = 1; i <= m / 2; i++)
- fprintf(g, "%d ", v[i]);
- fprintf(g, "%d ", j);
- for (i = m/2; i >= 1; i--)
- fprintf(g, "%d ", v[i]);
- fprintf(g, "\n");
- }
- return ;
- }
- for (i = 1; i <= m / 2; i++)
- fprintf(g, "%d ", v[i]);
- for (i = m/2; i >= 1 ; i--)
- fprintf(g, "%d ", v[i]);
- fprintf(g,"\n");
- }
- void Back() {
- int k = 1, isS, isV;
- Init(k);
- while (k > 0) {
- isS = 0; isV = 0;
- if (k <= m/2)
- do {
- isS = Succesor(k);
- if (isS) isV = Valid(k);
- } while (isS && !isV);
- if (isS)
- if (Solution(k))
- Print();
- else {
- k++;
- Init(k);
- }
- else
- k--;
- }
- }
- int main() {
- FILE *f;
- f = fopen("in.txt", "r");
- g = fopen("out.txt", "w");
- fscanf(f, "%d", &n);
- fscanf(f, "%d", &m);
- Back();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment