Examroom ois 2° round

Io e la mia squadra abbiamo ottenuto soltanto 75 punti perchè ci sfiorava il time limit. La risoluzione non era così pesante.

#include <iostream>
using namespace std;
int N,K, cont=0;
main(){
cin>>N>>C>>K;

for(i=0;i<N;i+=K) for(j=0;j<C;j+=K) cont++;
cout<<cont;
}

Puoi riassumere quel conto in una formula in modo che il tuo algoritmo abbia complessità costante.

HINT 1:

prova a dividere l’intera matrice(MAX_COL*MAX_RIGHE) di banchi in quadrati di lato grande quanto la distanza l’uno dall’altro.

HINT 2:

se non ti da 100, è perchè non consideri il caso in cui l’intera matrice non è divisibile per quei quadrati.

HINT 3:

ti basta aggiungere alle righe e alle colonne rispettivamente : il resto della divisione tra MAXCOL e distanza ed MAXRIGHE e distanza.
(distanza è il lato del quadrato).

Comunque se vuoi provare a questo indirizzo è disponibile la sottoposizione libera di tutti i problemi della gara a patto che ti registri (processo da 2 minuti nemmeno):
https://mirror.squadre.olinfo.it