poly

Time limit: 0.1s Memory limit: 8MB Input: poly.in Output: poly.out

Un polyomino este o figură geometrică plană compactă formată din una sau mai multe piese de domino, pătrate egale de latură 11. Două piese se consideră alăturate dacă au o latură comună.

Exemple de Polyominouri cu nn piese:

Două Polyominouri se consideră identice dacă sunt formate din acelaşi număr de piese şi au aceeaşi configuraţie sau configuraţia unuia se poate obţine prin oglindirea celuilalt. În caz contrar cele două Polyominouri se consideră distincte.

Polyominouri distincte Polyominouri care nu sunt distincte

Un polyomino poate fi rotit cu 90{90^{ \large \circ }}, 180{180^{ \large \circ }} şi 270{270^{ \large \circ }}, în sens trigonometric. Prin rotaţie se obţin alte Polyominouri, nu neapărat identice cu cel inţial.

Exemplu:

Prin rotaţia polyomino-ului se obţin:

Niciunul dintre aceste Polyominouri nu este identic cu cel iniţial.

Un polyomino este convex dacă prin parcurgerea succesivă a linilor sau coloanelor nu se întâlnesc găuri.

Polyomino convex Polyominouri neconvexe

Un polyomino este oblic convex (skew polyomino) dacă este convex şi prin parcurgerea succesivă a coloanelor de la stânga la dreapta acestea nu descresc în înălţime. Altfel spus, partea de jos a coloanei din stânga este întotdeauna mai mică sau egală ca înălţime cu partea de jos a coloanei din dreapta. În mod similar, partea de sus a coloanei din stânga este întotdeauna mai mică sau egală cu partea de sus a coloanei din dreapta.

Exemple:

Polyominouri oblice Polyominouri care nu sunt oblice

Cerință

Să se determine numărul de Polyominouri oblice distincte care au perimetrul egal cu 2N+22 \cdot N+2. Acest număr poate să fie mare, de aceea ne interesează rezultatul modulo 30 10330 \ 103.

Date de intrare

Fişierul de intrare poly.in conţine pe prima linie un număr natural NN.

Date de ieșire

Fişierul de ieşire poly.out conţine pe prima linie un număr natural ce reprezintă numărul de Polyominouri oblice care au perimetrul egal cu 2N+22 \cdot N+2, număr afişat modulo 30 10330 \ 103.

Restricții și precizări

  • 2N5002 \leq N \leq 500

Exemplu

poly.in

3

poly.out

5

Explicație

Sunt 55 Polyominouri care respectă cerinţa:

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