Submission

Status:
------T----

Score: 0

User: KhunKK9722

Problemset: สุ่มเจาะ

Language: cpp

Time: 1.067 second

Submitted On: 2025-03-12 10:49:06

#include <stdio.h>
#include <string.h>

int pow(int p, int n)
{
    if (n == 0)
        return 1;
    else
        return p * pow(p, n - 1);
}
int d, b, num, count, tmp;
bool success = true;

int main()
{
    scanf("%d %d", &d, &b);
    char n[d];
    int arr[d];
    scanf("%s", n);
    int len = strlen(n);
    for (int i = 0; i < len; i++)
    {
        num += pow(b, len - i - 1) * (n[i] - 48);
    }
    for (int x = 0; x < pow(b, d); x++)
    {
        if (x <= num)
        {
            for (int i = 0; i < d; i++)
            {
                arr[i] = x / pow(10, d - i - 1) - x / pow(10, d - i) * 10;
                printf("set arr[%d] to %d\n", i, x / pow(10, d - i - 1) - x / pow(10, d - i) * 10);
                if (i - 1 < 0)
                    arr[i - 1] = 0;
                if (arr[i - 1] > arr[i] || arr[i] > b)
                {
                    success = false;
                    printf("FAIL\n\n");
                }
            }
            if (success)
            {
                count++;
                printf("%d is successful\ncount = %d\n\n", x, count);
            }
            else
                success = true;
        }
    }
}