Enigmath Machine 30/100

Salve, volevo chiedere se qualcuno è in grado di capire quale sia l’errore che fa sbagliare qualche testcase, io ho cercato il problema per 3 ore senza successo, non è un problema di velocità.
Grazie in anticipo.

#include <iostream>
#include <vector>
using namespace std;

struct s_number
{
    int base;
    char k=0;
};
typedef struct s_number number;

int digitsum(int x);

int main()
{
    freopen("input.txt","r",stdin);
    freopen("output.txt","w",stdout);
    int i, min, max, delta, MIN_N, a;
    cin>>min>>max;
    if(min>100)
        MIN_N=min-100;
    else
        MIN_N=0;
    delta=max-MIN_N;
    vector<number> x(delta+1);
    for(i=MIN_N;i<=max;i++){
        a=digitsum(i);
        if(a>=min && a<=max){
        x[a-MIN_N].base=i;
        x[a-MIN_N].k++;
        }
    }

    for(i=min-MIN_N;i<=delta;i++){
        if(x[i].k==0)
            cout<<"IMPOSSIBLE"<<"\n";
        else if(x[i].k==1)
            cout<<x[i].base<<"\n";
        else
            cout<<"AMBIGUOUS"<<"\n";
    }
    return 0;
}

int digitsum(int x)
{
    if(x<10)
        return x;
    int c, y;
    c=0;
    y=x;
    while(y>9){
        c+=y%10;
        y/=10;
    }
    return x+digitsum(c+y);
}

Ciao, dovresti aggiustare il valore di MIN_N perché in questo modo non copri tutti i numeri utili da criptare.

Grazie mille per il consiglio, adesso funziona tutto.