만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

제곱수 찾기

시간 제한2초메모리 제한128 MB

요약
숫자 격자에서 행 번호와 열 번호가 각각 등차수열을 이루도록 칸을 골라 숫자를 이어 붙이고, 만들 수 있는 가장 큰 완전제곱수를 찾는다.
난이도

보통10점 중 5점

유형
완전 탐색, 수학, 정수론, 구현
정답자
아직 제출이 없습니다

문제

N행 M열 크기의 표 A가 있고, 각 칸에는 한 자리 숫자가 하나씩 적혀 있다.

연두는 서로 다른 칸을 1개 이상 고르려고 한다. 단, 고른 순서대로 나열했을 때 칸들의 행 번호가 등차수열을 이루어야 하고, 열 번호도 등차수열을 이루어야 한다. 이렇게 고른 칸에 적힌 숫자를 고른 순서대로 이어 붙이면 하나의 정수가 만들어진다.

연두가 만들 수 있는 정수 중에서 가장 큰 완전제곱수를 구하여라. 완전제곱수란 어떤 정수를 제곱하여 얻을 수 있는 수이다.

입력

첫째 줄에 두 정수 N과 M이 공백으로 구분되어 주어진다.

이어지는 N개의 줄에는 표의 각 행이 1번 행부터 N번 행까지 순서대로 주어진다. 각 줄에는 그 행의 1번 열부터 M번 열까지의 숫자가 공백 없이 이어져 있다.

출력

연두가 만들 수 있는 가장 큰 완전제곱수를 첫째 줄에 출력한다. 완전제곱수를 하나도 만들 수 없으면 -1을 출력한다.

제한

  • 1 ≤ N, M ≤ 9
  • 표의 각 칸에 적힌 숫자는 0 이상 9 이하이다.

예제6

  1. 예제 1

    입력
    2 3
    123
    456
    
    예상 출력
    64
    
  2. 예제 2

    입력
    5 5
    00000
    00000
    00200
    00000
    00000
    
    예상 출력
    0
    
  3. 예제 3

    입력
    6 7
    3791178
    1283252
    4103617
    8233494
    8725572
    2937261
    
    예상 출력
    320356
    
  4. 예제 4

    입력
    5 9
    135791357
    357913579
    579135791
    791357913
    913579135
    
    예상 출력
    9
    
  5. 예제 5

    입력
    9 9
    553333733
    775337775
    777537775
    777357333
    755553557
    355533335
    373773573
    337373777
    775557777
    
    예상 출력
    -1
    
  6. 예제 6

    입력
    9 9
    257240281
    197510846
    014345401
    035562575
    974935632
    865865933
    684684987
    768934659
    287493867
    
    예상 출력
    95481