#include <iostream>
#include <assert.h>
#include <math.h>
using namespace std;
long long tot;
long long m;
long long n;
void calcola(long long cifra, long long num, long long l){
if(l>n)return;
if(tot<num%m)tot=num%m;
for(long long i=3;i<=9;i+=3){
if(i!=cifra){
num+=i*(pow(10,l));
calcola(i,num,l+1);
num-=i*(pow(10,l));
}
}
}
long long occulta(long long N, long long M) {
// Mettete qui il codice della soluzione
calcola(3,3,1);
calcola(6,6,1);
calcola(9,9,1);
return tot;
}
int main() {
ios_base::sync_with_stdio(false);
long long T, N, M, i;
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
cin>>T;
for (i=0; i<T; i++) {
tot=0;
cin>>N>>M;
m=M;
n=N;
cout<<occulta(N, M);
cout<<" ";
}
return 0;
}
Di quelli che hanno risolto questo problema, qualcuno riesce a capire dove può sbagliare il mio codice? Gli ultimi due testcase sono sbagliati. Se non è chiaro qualcosa mi scuso, ma l’ho scritto un po’ di fretta.