Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cstring>
- using namespace std;
- 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'};
- int letpoz(char l)
- {
- int poz=26;
- for(int i=0;i<25&&poz==26;i++)
- if(alfa[i]==l)
- poz=i;
- return poz;
- }
- void encrypt(char c[21], int s, char ec[21])
- {
- int l;
- l=strlen(c);
- //char ec[l];
- int poz,npoz;
- for(int i=0;i<l;i++)
- {
- poz=letpoz(c[i]);
- npoz=(poz+s)%25;
- ec[i]=alfa[npoz];
- }
- ec[l]='\0';
- }
- void createstr(char sir[501],int poz, int m, char res[20])
- {
- int i;
- for(i=0;i<m;i++)
- res[i]=sir[poz+i];
- res[i]='\0';
- }
- int main()
- {
- int n,s,m,i,rn,j,h=0,q,grupari,ramas,prima,w,e,r,gasit=0,jkl;
- ifstream f1("text.in");
- char a[100][6],cuv[21],ecuv[21];
- char g[5][5],qq[5][5];
- f1>>n;
- f1.get();
- rn=n/5;
- for(i=0;i<rn;i++)
- {
- f1.get(a[i],6,' ');
- f1.get();
- }
- f1.get(a[i],(n%5+1));
- f1.get();
- f1.get(cuv,21);
- char sir[501];
- for(i=0;i<rn+1;i++)
- {
- if(i<rn)
- for(j=0;j<5;j++)
- sir[h++]=a[i][j];
- else
- for(j=0;j<n%5;j++)
- sir[h++]=a[i][j];
- }
- sir[h++]='\0';
- for(i=1;i<=25&&!gasit;i++)
- {
- encrypt(cuv,i,ecuv);
- for(j=5;j<=20&&!gasit;j++)
- {
- for(q=0;q<j&&!gasit;q++)
- {
- prima=j-q;
- ramas=strlen(ecuv)%j+q;
- grupari=(strlen(ecuv)-ramas-prima)/j;
- jkl=0;
- for(w=0;w<prima;w++)
- g[jkl][w]=ecuv[prima-1-w];
- g[jkl][w]='\0';
- /*for(e=0;e<grupari;e++)
- {
- jkl++;
- for(w=0;w<5;w++)
- g[e+1][w]=ecuv[(prima+5*(e+1))-w];
- }*/
- jkl++;
- for(w=0;w<ramas;w++)
- g[jkl][w]=ecuv[strlen(ecuv)-1-w];
- g[jkl][w]='\0';
- for(r=0;r<strlen(sir)&&!gasit;r++)
- {
- createstr(sir,r,prima,qq[0]);
- /*for(w=0;w<grupari;w++)
- createstr(sir,(r+(5*(w+1))),5,qq[w+1]);*/
- createstr(sir,(r+j+((j*grupari)+j-ramas)),ramas,qq[jkl]);
- if(strcmp(g[0],qq[0])==0&&strcmp(g[jkl],qq[jkl])==0)
- {
- s=i;
- m=j;
- gasit=1;
- }
- }
- }
- }
- }
- ofstream f2("text.out");
- f2<<s<<" "<<m;
- f1.close();
- f2.close();
- return 0;
- }
Add Comment
Please, Sign In to add comment