Aiuto Execution Timed out

salve, scusate se rompo le scatole ancora, ma del resto il forum in parte serve anche a questo… il codice che ho fatto mi risulta corretto, solo che non so come massimizzarlo per ottenere il punteggio completo.
L’esercizio è Scavi Fortunati
Qui sotto allego il mio codice e ringrazio in anticipo

#include <iostream>
#include <vector>
#include<bits/stdc++.h>
using namespace std;
 int i,j;
int k=0;


///Ridimensiona la matrice terreno
void ridimensiona(int R, int C, vector<vector<int>> terreno) {
	terreno[i].resize(R,0);
	for (int i=0; i<R; i++) {
		terreno[i].resize(C,0);
	}
}
void scavi(int R, int C, int Q, vector<int> &x1, vector<int> &y1,vector<int> &x2, vector<int> &y2, vector<int> &p, vector<vector<int> > &terreno){
    ridimensiona(R,C,terreno);
    ///eseguo le operazioni che sono in tutto k=q-1
    while(k<Q){
        ///segno la profondita del terreno dalla posizione x1,y1 a x2,y2
        for(i=x1[k];i<=x2[k] && i<R;i++){
           for(j=y1[k];j<=y2[k] && j<C;j++){
              terreno[i][j]+=p[k];
          }
        }
     k++;
    
    }
    
}

La tua soluzione è teoricamente giusta, ma ha una complessità troppo elevata.

Tutti i problemi della rubrica TAI hanno una pagina dedicata sul forum con una spiegazione della soluzione. Qui trovi l’editorial di questo problema: