Aventurile Antoniei (cap. 1
)
Antonia, o elevă în clasa a noua, plictisită de testele și de lecțiile de la chimie, se decide să creeze un joc. Ea alege două numere naturale nenule, n
și k
, cu ajutorul cărora construiește o matrice pătratică n x n
în formă de spirală (dinspre exterior înspre interior, ca în figura de mai jos). Apoi, fata umple matricea cu numere naturale nenule consecutive, pornind de la k
. Scopul jocului este să calculeze suma elementelor de pe diagonala principală, însă fata nu are la dispoziție decât 0.1
secunde până când doamna profesor va observa că nu este atentă la ore. Pentru n = 6
și k = 1
, matricea ar arăta astfel:
Exemplu
wisp.in
6 1
wisp.out
128
Explicație
Matricea va arăta ca în imaginea anterioară.
#include <bits/stdc++.h> using namespace std; ifstream cin("wisp.in"); ofstream cout("wisp.out"); int main() { long long int n , k; cin >> n >> k; unsigned long long int s=0; unsigned long long int nr=0; nr=k; s=k; if(n%2==0) { n--; while(n > 1) { nr+=2*n; s+=nr; nr+=2*n; s+=nr; n-=2; } s+=nr+2; } else { n--; while(n > 1) { nr+=2*n; s+=nr; nr+=2*n; s+=nr; n-=2; } } cout << s; return 0; }