攻防世界 Railfence【W形栅栏】
题中提到了栅栏那就是栅栏密码,但是普通的栅栏并不对,所以试一下W形
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
using namespace std;
int main()
{
string s;
int a[105],d[105];
char b[105][105];
cin>>s;
int n=s.length();
for(int c=2;c<=n;c++)
{
memset(a,0,sizeof(a));
int w=0;
while(w<n)
{
for(int i=1;i<c&&w<n;i++,w++)
a[i]++;
for(int i=c;i>1&&w<n;i--,w++)
a[i]++;
}
w=0;
for(int i=1;i<=c;i++)
for(int j=1;j<=a[i];j++)
b[i][j]=s[w++];
memset(d,0,sizeof(d));
w=0;
while(w<n)
{
for(int i=1;i<c&&w<n;i++,w++)
cout<<b[i][++d[i]];
for(int i=c;i>1&&w<n;i--,w++)
cout<<b[i][++d[i]];
}
puts("");
}
return 0;
}
flag:cyberpeace{railfence_cipher_gogogo}
浙公网安备 33010602011771号