Drum

Time limit: 0.08s Memory limit: 64MB Input: drum.in Output: drum.out

Acum că este dupa ora opt, Emilian trebuie să plece de pe Piezișă spre circul zburător, pentru a-și continua distracția futuristă în orașul Jluc.

Orașul Jluc poate fi privit ca un sistem de coordonate cu valori întregi, în care ne putem deplasa doar pe orizontală și verticală (nu și pe diagonală). Definim un drum dintr-un punct în altul ca fiind o succesiune de pași între aceste două puncte, un pas efectuându-se dintr-un punct (x,y)(x, y) în unul din punctele (x,y+1)(x, y+1), (x,y1)(x, y − 1), (x+1,y)(x + 1, y) sau (x1,y)(x − 1, y), iar lungimea unui drum ca fiind numărul de pași efectuați în ace drum. Deoarece Emilian este obosit și amețit după învățatul pentru sesiune, într-un drum putem trece prin același punct de mai multe ori, deci (1,1)(0,1)(1,1)(1, 1) \rightarrow (0, 1) \rightarrow (1, 1) este un drum valid de lungime 22.

Dându-se coordonatele punctelor de interes, Emilian se întreabă câte drumuri de lungime KK există între aceste două puncte.

Date de intrare

Pe prima linie se dau xsx_s, ysy_s coordonatele punctului de plecare, pe cea de a doua linie xfx_f, yfy_f coordonatele punctului de sosire, iar pe a treia linie lungimea drumului KK.

Date de ieșire

Se va afișa numărul de drumuri posibile modulo 1 000 000 0071 \ 000 \ 000 \ 007.

Restricții și precizări

  • 109xs,ys,xf,yf109−10^9 \leq x_s, y_s, x_f , y_f \leq 10^9
  • 0K1060 \leq K \leq 10^6
# Puncte Restricții
1 3 Toate numerele din intrare sunt impare.
2 21 K11K ≤ 11
3 22 KK este egal cu lungimea minimă a drumurilor între cele două puncte
4 45 K105K ≤ 10^5
5 9 Fără restricții suplimentare.

Exemplu

drum.in

2 2
3 3
2

drum.out

2

Explicație

Există două drumuri de lungime 22: (2,2)(2,3)(3,3)(2, 2) \rightarrow (2, 3) \rightarrow (3, 3), (2,2)(3,2)(3,3)(2, 2) \rightarrow (3, 2) \rightarrow (3, 3).

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