SuitNdtie

Zencryption

Apr 10th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. int main()
  5. {
  6.     int k;
  7.     scanf("%d",&k);
  8.     char input[1010];
  9.     scanf("%s",input);
  10.     if(k == 1){
  11.         printf("%s",input);
  12.         return 0;
  13.     }
  14.     int len = strlen(input);
  15.     if(k >= len){
  16.         for(int i=len-1;i>=0;i--){
  17.             printf("%c",input[i]);
  18.         }
  19.         return 0;
  20.     }
  21.     char ans[1010];for(int i=0;i<1010;i++)ans[i] = '\0';
  22.     int indextop = k-1;
  23.     int indexinput = 0;
  24.     while(indextop < len){
  25.         for(int i=0;i<k;i++){
  26.             if(indextop + i < len)ans[indextop + i] = input[indexinput++];
  27.         }
  28.         indextop += (4*(k-1));// + (k-2))
  29.     }
  30.     for(int i = 1 ; i <= k - 2 ; i ++){
  31.         int indexmid = k - i - 1;
  32.         int cnt = 0;
  33.         while(indexmid < len){
  34.             ans[indexmid] = input[indexinput++];
  35.             cnt++;
  36.             if(cnt % 2 == 1){ //odd
  37.                 indexmid += k + (2 * (i - 1) ) + 1;
  38.             }
  39.             else{ //even
  40.                 indexmid += k + (2 * (k - 2 - i) ) + 1;
  41.             }
  42.         }
  43.     }
  44.     int i = 0;
  45.     while(indexinput < len){
  46.         while(ans[i] != '\0')i++;
  47.         if(i < len)ans[i] = input[indexinput++];
  48.     }
  49.     printf("%s",ans);
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment