plagiat

Time limit: 1s Memory limit: 64MB Input: plagiat.in Output: plagiat.out

Cerință

Spunem că un șir (a1,a2,,at)(a_1, a_2, \dots, a_t) este plagiat al șirului (b1,b2,,bt)(b_1, b_2, \dots, b_t) dacă a1b1=a2b2==atbta_1 - b_1 = a_2 - b_2 = \dots = a_t - b_t.

Având două șiruri: AA de lungime N (A1,A2,,AN)N \ (A_1, A_2, \dots, A_N) și BB de lungime M (B1,B2,,BM)M \ (B_1, B_2, \dots, B_M), vrem să determinăm cea mai lungă subsecvență din AA pentru care există o subsecvență în BB căreia îi este plagiat. Cu alte cuvinte dacă LL este lungimea maximă căutată, există ii și jj astfel încât (Ai,Ai+1,,Ai+L1)(A_i, A_{i+1}, \dots, A_{i+L-1}) este plagiat al secvenței (Bj,Bj+1,,Bj+L1)(B_j, B_{j+1}, \dots, B_{j+L-1}).

Să se afiseze tripletul (L,i,j)(L, i, j). Dacă există mai multe soluții cu lungime maximă, o preferăm pe cea cu ii minim, daca încă există mai multe soluții, o vom prefera pe cea cu jj minim.

Date de intrare

Fișierul plagiat.in conține pe prima linie numărul nn. Pe linia a doua sunt nn numere naturale separate prin spațiu, reprezentând elementele șirului AA. Pe linia a treia se află un număr natural mm. Pe linia a patra sunt mm numere naturale separate prin spațiu, reprezentând elementele șirului BB.

Date de ieșire

Pe prima linie a fișierului plagiat.out se află cele trei numere naturale LL, ii, jj, separate prin spațiu, cu semnificația descrisă mai sus.

Restricții și precizări

  • 1n,m100 0001 \leq n, m \leq 100 \ 000;
  • 0Ai,Bi1 0000 \leq A_i, B_i \leq 1 \ 000;
  • Pentru 3636 de puncte n,m300n, m \leq 300;
  • Pentru alte 2424 de puncte n,m4 000n, m \leq 4 \ 000;
  • Pentru alte 1616 puncte n,m10 000n, m \leq 10 \ 000;
  • Pentru restul de 2424 de puncte nu sunt restricții suplimentare.

Exemplu

plagiat.in

13
10 12 20 6 4 5 7 6 4 5 21 11 12
17
13 14 12 7 6 7 9 8 6 7 9 8 6 7 1 1 2

plagiat.out

7 4 8

Log in or sign up to be able to send submissions!