Fişierul intrare/ieşire: | matsum.in, matsum.out | Sursă | InfoPro, Runda 4, Grupa A |
Autor | Costin Oncescu, Tamio-Vesa Nakajima | Adăugată de | |
Timp execuţie pe test | 0.75 sec | Limită de memorie | 256000 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Matsum
Se dau două numere întregi N, M şi două şiruri de numere întregi nenegative P, de N elemente, şi Q, de M elemente. Se defineşte apoi matricea A cu N linii şi M coloane, unde elementul Ai, j de pe linia i şi coloana j este definit de relaţia

Operatorul xor reprezintă sau-ul exclusiv pe biţi, scris ^ în C++.
Definim valoarea S(a,b,c,d), pentru 1 ≤ a ≤ b ≤ N, 1 ≤ c ≤ d ≤ M, astfel:

Akane este o fire mai curioasă, şi vrea să afle următoarea valoare:

O puteţi ajuta să calculeze această valoare, modulo 109 + 7?
Date de intrare
Fişierul de intrare matsum.in conţine, pe primul rând, numerele N, M, cu semnificaţia din enunţ. Pe al doilea rând se găsesc N numere, elementele şirului P. Pe al treilea rând se găsesc M numere, elementele şirului Q.
Date de ieşire
În fişierul de ieşire matsum.out se va afişa pe primul rând un număr întreg reprezentând valoarea cerută, modulo 10^9 + 7.
Restricţii
- 1 ≤ N, M ≤ 2.000.
- 0 ≤ Pi, Qj ≤ 104, pentru 1 ≤ i ≤ N, 1 ≤ j ≤ M.
- Pentru 30 de puncte, 1 ≤ N, M ≤ 30.
- Pentru alte 40 de puncte, 1 ≤ N, M ≤ 300.
matsum.in | matsum.out |
---|---|
3 1 1 1 1 0 | 20 |
3 1 1 2 3 0 | 84 |
3 2 1 2 3 1 2 | 912 |