ConcursC++17

special

Mihai și Ioana au creat o reprezentare a matricii AA cu NN linii (numerotate de la 00 la N−1N-1) şi MM coloane (numerotate de la 00 la M−1M-1) în care fiecare element A[i][j]A[i][j] este determinat pe baza următoarei formule:
A[i][j]=(15⋅i+4⋅j+2025)A[i][j] = (15 \cdot i+4 \cdot j+2025)%K\%K, unde ii și jj sunt indicii liniei și coloanei, iar KK este un număr natural nenul, ales de ei.

Se definesc următoarele categorii de numere:

  • număr special: un număr natural de două cifre, al cărui pătrat este un număr de trei cifre, iar cifra zecilor din acest pătrat este egală cu suma dintre cifra sutelor și cifra unităților. Exemplu: 1111 este un număr special.
  • număr aproape special: un număr care poate deveni special prin eliminarea a cel puțin unei cifre. Exemplu: 1231012310 este număr aproape special pentru că prin eliminarea cifrelor 00, 22 și 33 se obține numărul special 1111.

Mihai și Ioana încep, în același timp și cu aceeași viteză, explorarea matricii începând cu A[0][0]A[0][0], folosind strategii diferite:

  • Ioana se deplasează pe linii, de sus în jos, și pe fiecare linie de la stânga la dreapta.
  • Mihai se deplasează pe coloane, de la stânga la dreapta, și pe fiecare coloană de sus în jos.

În anumite momente de timp, cei doi ajung simultan la același element.

Cerință

  1. Determinați numărul de numere speciale care există în matricea AA.
  2. Determinați numărul elementelor din matricea AA care sunt numere aproape speciale, la care Mihai și Ioana ajung în același timp.

Date de intrare

Fișierul de intrare special.in conține pe prima linie numărul natural CC, unde CC este cerința care trebuie rezolvată (11 sau 22). Pe a doua linie se află trei numere NN MM KK, separate prin câte un spațiu, cu semnificația din enunț.

Date de ieșire

Fișierul de ieșire special.out conține numărul determinat pentru cerința CC.

Restricții și precizări

  • C∈{1,2}C \in \{1, 2\}
  • 1≤N,M≤1 000 0001 \leq N, M \leq 1 \ 000 \ 000
  • 10≤K≤1 000 00010 \leq K \leq 1 \ 000 \ 000
#ScorRestricții
135C=1C = 1, 1≤N,M≤1 0001 \leq N, M \leq 1 \ 000
215C=1C = 1, 1 000<N,M≤1 000 0001 \ 000 < N, M \leq 1 \ 000 \ 000
330C=2C = 2, 1≤N,M≤1 0001 \leq N, M \leq 1 \ 000
420C=2C = 2, 1 000<N,M≤1 000 0001 \ 000 < N, M \leq 1 \ 000 \ 000

Exemplul 1

special.in

1
4 5 13

special.out

2

Explicație

C=1C=1. Se rezolvă cerința 11.
Matricea este

101590
1237112
15904
371126

Numărul 1111 este special și apare de 22 ori.

Exemplul 2

special.in

2
7 5 1000

special.out

1

Explicație

C=2C=2. Se rezolvă cerința 22.
Matricea este

2529333741
4044485256
5559636771
7074788286
85899397101
100104108112116
115119123127131

Cei doi copii se întâlnesc la plecare în A[0][0]A[0][0], apoi în A[3][2]A[3][2] și la sosire în A[6][4]A[6][4].

În A[6][4]A[6][4] se află numărul 131131 care este aproape special.

Figura 1 din enunțul original al problemei special.Figura 1 din enunțul original al problemei special.Mărește schema ↗

Exemplul 3

special.in

2
11 21 3000

special.out

5

Explicație

C=2C=2. Se rezolvă cerința 22.

Sunt 1111 elemente ale matricii în care cei doi copii se întâlnesc, dintre care doar 55 au ca valori numere aproape speciale.

Sursă și autori

ONI 2025, clasele 6. Ana-Maria Arișanu.

Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.

Se verifică autentificarea…

Un pas, apoi următorul.Înapoi sus ↑