Guest User

Untitled

a guest
Jun 24th, 2018
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.78 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstring>
  4.  
  5. using namespace std;
  6.  
  7. char alfa[25]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','X','Y','Z'};
  8.  
  9. int letpoz(char l)
  10. {
  11.     int poz=26;
  12.     for(int i=0;i<25&&poz==26;i++)
  13.         if(alfa[i]==l)
  14.             poz=i;
  15.     return poz;
  16. }
  17.  
  18. void encrypt(char c[21], int s, char ec[21])
  19. {
  20.     int l;
  21.     l=strlen(c);
  22.     //char ec[l];
  23.     int poz,npoz;
  24.     for(int i=0;i<l;i++)
  25.     {
  26.         poz=letpoz(c[i]);
  27.         npoz=(poz+s)%25;
  28.         ec[i]=alfa[npoz];
  29.     }
  30.     ec[l]='\0';
  31. }
  32.  
  33. void createstr(char sir[501],int poz, int m, char res[20])
  34. {
  35.     int i;
  36.     for(i=0;i<m;i++)
  37.         res[i]=sir[poz+i];
  38.     res[i]='\0';
  39. }
  40.  
  41. int main()
  42. {
  43.     int n,s,m,i,rn,j,h=0,q,grupari,ramas,prima,w,e,r,gasit=0,jkl;
  44.     ifstream f1("text.in");
  45.     char a[100][6],cuv[21],ecuv[21];
  46.     char g[5][5],qq[5][5];
  47.     f1>>n;
  48.     f1.get();
  49.     rn=n/5;
  50.     for(i=0;i<rn;i++)
  51.     {
  52.         f1.get(a[i],6,' ');
  53.         f1.get();
  54.     }
  55.     f1.get(a[i],(n%5+1));
  56.     f1.get();
  57.     f1.get(cuv,21);
  58.     char sir[501];
  59.     for(i=0;i<rn+1;i++)
  60.     {
  61.         if(i<rn)
  62.             for(j=0;j<5;j++)
  63.                 sir[h++]=a[i][j];
  64.         else
  65.             for(j=0;j<n%5;j++)
  66.                 sir[h++]=a[i][j];
  67.     }
  68.     sir[h++]='\0';
  69.     for(i=1;i<=25&&!gasit;i++)
  70.     {
  71.         encrypt(cuv,i,ecuv);
  72.         for(j=5;j<=20&&!gasit;j++)
  73.         {
  74.             for(q=0;q<j&&!gasit;q++)
  75.             {
  76.                 prima=j-q;
  77.                 ramas=strlen(ecuv)%j+q;
  78.                 grupari=(strlen(ecuv)-ramas-prima)/j;
  79.                 jkl=0;
  80.                 for(w=0;w<prima;w++)
  81.                     g[jkl][w]=ecuv[prima-1-w];
  82.                 g[jkl][w]='\0';
  83.                 /*for(e=0;e<grupari;e++)
  84.                 {
  85.                     jkl++;
  86.                     for(w=0;w<5;w++)
  87.                         g[e+1][w]=ecuv[(prima+5*(e+1))-w];
  88.                 }*/
  89.                 jkl++;
  90.                 for(w=0;w<ramas;w++)
  91.                     g[jkl][w]=ecuv[strlen(ecuv)-1-w];
  92.                 g[jkl][w]='\0';
  93.  
  94.                 for(r=0;r<strlen(sir)&&!gasit;r++)
  95.                 {
  96.                     createstr(sir,r,prima,qq[0]);
  97.                     /*for(w=0;w<grupari;w++)
  98.                         createstr(sir,(r+(5*(w+1))),5,qq[w+1]);*/
  99.                     createstr(sir,(r+j+((j*grupari)+j-ramas)),ramas,qq[jkl]);
  100.                     if(strcmp(g[0],qq[0])==0&&strcmp(g[jkl],qq[jkl])==0)
  101.                     {
  102.                         s=i;
  103.                         m=j;
  104.                         gasit=1;
  105.                     }
  106.                 }
  107.  
  108.             }
  109.         }
  110.     }
  111.     ofstream f2("text.out");
  112.     f2<<s<<" "<<m;
  113.     f1.close();
  114.     f2.close();
  115.     return 0;
  116. }
Add Comment
Please, Sign In to add comment