Գրաֆիկական քարտի (GPU) վրա գործողությունները շատ հեշտ է զուգահեռացնել. եթե հնարավոր է միաժամանակ նույն տեսակի գործողություն կատարել բազմաթիվ թվերի վրա, ապա այն սովորաբար ավելի արագ է, քան ամեն անգամ տարբեր գործողություններ կատարելը: Այս պահին թիմը թեստավորում է իրենց կոդը և նրանք խնդրում են գրել ծրագիր, որը կստուգի թե արդյոք բազմաթիվ թվերի գումարման գործողությունը ճիշտ է հաշված տարբեր մոդուլոներով:
Տրված են երկու ամբողջ թվերի զանգվածներ a1,a2,...,an և b1,b2,...,bn. Անհրաժեշտ է հաշվել յուրաքանչյուր ai և bi զույգի գումարը մոդուլո mi-ով:
(ai+bi)modmi
Ուշադրություն դարձրեք, որ տարբեր ծրագրավորման լեզուներ տարբեր ձևով են իրականացնում մոդուլո գործողությունը. Python-ում արդյունքը միշտ դրական է ստացվում, իսկ օրինակ C++-ում հնարավոր է ստանալ բացասական մնացորդ (օր. -3 % 2 → -1): Շատ հայտնի հնարք է օգտագործել if պայմանը, որպեսզի, եթե մնացորդը բացասական է, գումարեք m: Կամ էլ կարելի է կիրառել առավել ընդհանրացած տարբերակ, երբ ամեն դեպքում ավելացնում եք m և նորից մոդուլո եք անում. Այսինքն ((a % m) + m) % m: Սա կապահովի, որ վերջնական արդյունքը միշտ դրական լինի:
Մուտք
Մուտքի առաջին տողում տրված է մեկ ամբողջ թիվ n (1 ≤ n ≤ 100 000), որը տարրերի քանակն է:
Երկրորդ տողը պարունակում է n ամբողջ թվեր a1,a2,...,an (−109 ≤ ai ≤ 109):
Հաջորդ տողը պարունակում է n ամբողջ թվեր b1,b2,...,bn (−109 ≤ bi ≤ 109):
Վերջին տողը պարունակում է n ամբողջ թվեր m1,m2,...,mn (1 ≤ mi ≤ 109):
Ելք
Ծրագիրը պետք է տպի բացատով բաժանված n ամբողջ թվեր, որոնք հավասար են (ai+bi)modmi-ի: