Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream fin("caroiaj.in");
- ofstream fout("caroiaj.out");
- int n,mij,mij1,mij2,st,dr,stm,drm;
- char a[250001],b[501][501];
- int main()
- {
- int i,lgc,lgm,drm,j,p,k;
- fin>>n;
- for(i=1; i<=n; i++)
- for(j=1;j<=n;j++)
- fin>>b[i][j];
- p=0;
- for(k=1;k<=(n+1)/2;k++)
- {
- ///1
- for(j=k;j<=n-k+1;j++)
- {
- p++;
- a[p]=b[k][j];
- }
- ///2
- for(i=k+1;i<=n-k+1;i++)
- {
- p++;
- a[p]=b[i][n-k+1];
- }
- ///3
- for(j=n-k;j>=k;j--)
- {
- p++;
- a[p]=b[n-k+1][j];
- }
- ///4
- for(i=n-k;i>k;i--)
- {
- p++;
- a[p]=b[i][k];
- }
- }
- n=n*n;
- lgm=1;
- stm=drm=1;
- for(mij=1; mij<=n; mij++)
- {
- st=dr=mij;
- while(st>=1 && dr<=n && a[st]==a[dr])
- {
- st--;
- dr++;
- }
- st++;
- dr--;
- lgc=dr-st+1;
- if(lgc>=lgm)
- {
- lgm=lgc;
- stm=st;
- drm=dr;
- }
- }
- for(mij1=1,mij2=2; mij2<=n; mij1++,mij2++)
- if(a[mij1]==a[mij2])
- {
- st=mij1;
- dr=mij2;
- while(st>=1 && dr<=n && a[st]==a[dr])
- {
- st--;
- dr++;
- }
- st++;
- dr--;
- lgc=dr-st+1;
- if(lgc>=lgm)
- {
- lgm=lgc;
- stm=st;
- drm=dr;
- }
- }
- for(i=stm;i<=drm;i++)
- fout<<a[i];
- ///fout<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement