Thot:
I am still baffled by the fact that in the declaration "1" means 1 total and in the assignment "1" means the second item: 0 - 1.
You declare the number you want. eg.
int foo [2];
You get an array of two. However they are zero-relative. So you index into 0, 1.
Thanks also for the PROGMEM tip and for the link! I can do it so long as the program does not need to modify it, correct?
Yes.
Finally, can I put the code in a function at the end of the sketch and call it from setup(), maybe by stating somehow it's a global array or, being it a variable assignment must it go before setup() (that would make the sketch neater) ?
The assignments would take instructions. It seems much simpler to pre-assign the array (ie. declare the contents, don't assign them). Then it would need to be globally defined (or at least, static inside a function).
As the second numbers are not bigger than a byte I could create two monodimensional arrays, one int and one byte for a total of 100 * (2 + 1) = 300 bytes (plus some overhead, I assume).
You could do that, but if you keep them in program memory you have 32 Kb to play with, so you aren't running out yet.