Није ми јасно зашто grader избацује WA на свим примерима?

Pitanje ili opis problema

Није ми јасно зашто grader избацује WA на свим примерима, а сматрам да је моје решење тачно. Проверавао сам и на неким приватним тест примерима и ради код.
Мој код:
#include <bits/stdc++.h>
using namespace std;
bool cifre(int j){
int niz[10],x=floor(log10(j) + 1);
for(int i = 0; i < x; i++){
niz[i] = j % 10;
j = j / 10;
}
sort(niz,niz+x);
for (int i = 0; i < x-1; i++){
if(niz[i]==niz[i+1]){
return false;
break;
}
else if(niz[x-2]!=niz[x-1]) return true;
}
}
int main(){
int a,b,brojac=0;
cin>>a>>b;
for(int j=a; j<=b; j++){
if(cifre(j)) brojac++;
}
cout<<brojac;
}

Само да појасним : x=floor(log10(j) + 1) представља број цифара броја j.

Link ka zadatku ili odgovarajućoj stranici

https://arena.petlja.org/sr-Latn-RS/competition/skola-od-kuce-nizovi1-zadaci#tab_90580

Napisati program kojim se određuje koliko ima prirodnih brojeva u intervalu [m,n] kojima su sve cifre različite.

Ulaz

Sa standardnog ulaza u prvoj liniji se učitava prirodan broj m, a u sledećoj prirodan broj n. Broj n je veći od broja m. Vrednosti učitanih brojeva su u granicama od 100 do 10000.

Izlaz

Na standardnom izlazu se ispisuje koliko je brojeva sa različitim ciframa u zadatom intervalu.

Primer

Ulaz

120
130

Izlaz

9

Tvoja funkcija cifre uvek vraca ili true ili false u prvoj iteraciji, tako da nikada nece uporediti drugu i trecu cifru, jer je else if(niz[x-2] ... “uparen” sa if-om koji se izvrsava u prvoj iteraciji i poredi niz[0] sa niz[1]. Na primer, za 1223 tvoja funkcija vraca da su sve cifre razlicite, jer uporedi 1 i 2, i posto su razliciti uporedi poslednje dve cifre i vrati true.

2 Likes

Успео сам да исправим, ради.
Хвала на брзом одговору и објашњењу.