1 solutions

  • 0
    @ 2025-1-7 11:26:48
    #include <iostream>
    #include <vector>
    #include <unordered_set>
    #include <string>
    using namespace std;
    vector<vector<int>> grid(5, vector<int>(5));
    unordered_set<string> unique_number;
    
    void dfs(int x, int y, int steps, string number) 
    {
        if (steps == 0) 
        {
    
            while (number.length() < 6) 
            {
                number = "0" + number;
            }
            unique_number.insert(number);
            return;
        }
        int dx[] = { 0, 0, -1, 1 };
        int dy[] = { -1, 1, 0, 0 };
    
        for (int i = 0; i < 4; ++i) 
        {
            int nx = x + dx[i];
            int ny = y + dy[i];
    
            if (nx >= 0 && nx < 5 && ny >= 0 && ny < 5) 
            {
                dfs(nx, ny, steps - 1, number + to_string(grid[nx][ny]));
            }
        }
    }
    
    int main() 
    {
        for (int i = 0; i < 5; ++i) 
        {
            for (int j = 0; j < 5; ++j) 
            {
                cin >> grid[i][j];
            }
        }
        for (int i = 0; i < 5; ++i) 
        {
            for (int j = 0; j < 5; ++j) 
            {
                dfs(i, j, 5, to_string(grid[i][j]));
            }
        }
    
        cout << unique_number.size() << endl;
    
        return 0;
    }
    
    • 1

    Information

    ID
    311
    Time
    1000ms
    Memory
    16MiB
    Difficulty
    10
    Tags
    # Submissions
    8
    Accepted
    3
    Uploaded By