Ho provato a risolvere questo problema ma per qualche ragione mi continua a dare 69,23/100 punti… ho provato un po’ tutto, infatti sono alla trentunessima submission sul problema, ma non riesco ad arrivare ad un risultato corretto, i subtask su cui da “output isn’t correct” sono 004, 006, 013, 019, 020, 021, 023 e 025.
Spero che qualcuno di voi sappia aiutarmi, grazie in ogni caso.
Il codice:
#include
#include
#include <unordered_map>
#include
using namespace std;
#define modulo 1000000007
int main(){
fstream in,out;
in.open(“input.txt”,ios::in);
out.open(“output.txt”,ios::out);
long long int N;
long long int K;
in>>N>>K;
unordered_map<long long int, int> freq;
for(int i=0; i<N; i++){
long long int k;
in>>k;
freq[k]++;
}
long long int a=sqrt(K), S=0;
if(aa==K)
S=((freq[a](freq[a]-1))/2);
for(int i=1; i<sqrt(K); i++)
if(K%i==0)
S=(S+(freq[i]*freq[K/i]))%modulo;
out<<S;
}