Programozó versenyek

DEIK Regionális Programozó Csapatverseny, nyílt kategória, 2022. december 4.

2022. december 4. 10:00 – 2022. december 4. 15:15

1 milliárd dimenzió

Ismert, hogy a klasszikus 3 dimenziós térben a vektorokat az (x,y,z) koordinátákkal adjuk meg, melyeket szokás a köznyelvben (pl. bútorok esetén) szélességnek, magasságnak és mélységnek is nevezni. Egy messzi-messzi galaxisban, az 1 milliárd dimenzió bolygójának földjén a lakók hasonló szisztémát használnak a vektorok megadására azzal a különbséggel, hogy náluk minden vektor 1 milliárd koordinátából áll (azaz egy vektor (x1,x2,x3,...,x1000000000) alakú). Szerencsére a bolygó gravitációs tere és az ennek ellensúlyozására felhúzott mágikus erőtér kölcsönhatásának következtében a vektorok gyanúsan sok egymás utáni ismétlődést tartalmaznak, így a lakók körében elterjedt a vektorok ún. tömörített alakjának használata, melynek alakja: (darabszám1 érték1 darabszám2 érték2 ... darabszámn értékn), ahol a darabszám adja meg, hogy az utána szereplő érték hányszor fordul elő egymás után, megszakítás nélkül. Például az (1 1 1 ... (összesen 100 db 1-es) 2 3 3 4 4 4 ... (összesen 999999897 db 4-es) vektor tömörített formája (100 1 1 2 2 3 999999897 4) (azaz 100 darab 1-es, 1 db 2-es, 2 db 3-as, és 999999897 darab 4-es). A feladatunk az, hogy kiszámoljuk két, tömörített formában megadott vektor skaláris szorzatát, azaz a pontonkénti koordináták szorzatainak összegét (például az (x,y,z) és (u,v,w) vektorok skaláris szorzata x*u + y*v + z*w).

Input

A bemenet két sorból áll, melyek mindegyike egy-egy tömörített vektort tartalmaz. A vektorban szereplő összes "egység" között pontosan egyetlen szóköz található és a könnyebb feldolgozhatóság érdekében a vektorokat nem vettük körbe zárójelekkel. Az összes sor hossza legfeljebb 10000 karakter.

Output

A kimenet egyetlen szám, mely a két vektor skaláris szorzatát adja meg.

Megkötések

  • A vektor koordinátái egész számok;
  • Az egyes koordináták előfordulásai nemnegatív egészek;
  • Minden köztes számolás, és a végső érték abszolútértéke legfeljebb 240.

Példa

Input:
  1. 500000001 1 499999999 -1
  2. 1000000000 1
  3.     
letöltés szöveges állományként Output:
  1. 2
  2.     
letöltés szöveges állományként

Magyarázat

Az első vektor kibontott alakban 500 millió + 1 darab 1-est tartalmaz, majd 499999999 darab -1-est. A második vektor 1 milliárd darab 1-esből áll. Így a skaláris szorzat 500000001*(1*1) + 499999999*(-1*1) = 2.
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.