Witam mam problem z zadaniem. Kod jest dobry i działa ale testerka pokazuje że przekroczyłem limit czasu i niewiem jak moge to jeszcze bardziej przyspieszyć i prosiłbym o pomoc w przyspieszeniu. Poniżej wkleję mój kod.
PYTANIE GŁOWNE: ile jest pizzerii na przedziale [Lj Rj], w których kazdy zje jednakowa liczb ˛e kawałków?
#include <iostream>
using namespace std;
const int MAX=100000;
int tab[MAX+1];
int main(){
std::ios_base::sync_with_stdio(false);
std::cin.tie(NULL);
int n,q,l,r,k,s;
cin>>n>>q;
int tab[n];
for(int i=0;i<n;i++)
{
cin>>tab[i];
}
for(int i=0;i<q;i++)
{ s=0;
cin>>l>>r>>k;
for(int j=l;j<=r;j++)
{
if(tab[j-1]%k==0)
s++;
}
cout<<s<<endl;
}
return 0;
}
Wejscie ´
8 24 9 2 7 6 1 -N liczb które mówią na ile kawałków w danej pizzeri kroi sie pizze
2 5 3 }
1 7 2 } (Q zapytań 2 i 5 tworzy przedział do jakich pizzeri będą zaglądać oraz 3 mówi liczbe osob
6 7 15 }
3 4 3 }
wyjscie: trzeba wypisać Q wierszy z odpowiedzią na zapyatnie
2
4
0
1
Wiem mogłem zamieszać trochę ale nie chce wklejać całej treści. I proszę o pomoc w przyspieszeniu kodu.