/* * encipher.c * * Copyright 2011 Contest Team 19 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ #include #include int main(int argc, char** argv) { char inputText [10001]; char c; int count; int step, j, k, m; char * kruhovy; while (1) { scanf ("%d", &step); if (!step) { break; } count = 0; c = getchar (); // buffer flush while (1) { c = getchar (); if (c == ' ') { continue; } if (c == '\n') { inputText[count] = '\0'; break; } if (c >= 97 && c <= 122) // Prevod malych pismen na velke inputText[count++] = c - 32; else inputText[count++] = c; } kruhovy = (char*)malloc(count*sizeof(char)); m = 0; /* for (k = 0; k < count / (count / step); k ++) { for (j = 0; j < count / step; j ++) { kruhovy[j * step + k] = inputText[m]; m ++; } }*/ k = 0; j = 0; while (m != count){ kruhovy[j*step+k] = inputText[m]; //printf("%d -> %c\n", j*step+k, inputText[m]); m++; j++; if (j*step+k >= count){ j = 0; k++; } } kruhovy[count] = '\0'; printf ("%s\n", kruhovy); /* if (count <= step) { printf("%s\n", inputText); } else { for (i = 0; i < count; i++) { kruhovy[(i*step)%count] = inputText[i]; } printf("%s\n", kruhovy); } */ } return 0; }