Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <vector>#include <algorithm>#include <set>#include <string>#include <cstring>using namespace std;int n, m;int tot = 0;set<string> areas;set<int> sizes;int** map;int** visited;void dfs(int i, int j, string& island, int& size) {size++;visited[i][j] = 1;if (j+1 < m && map[i][j + 1] && !visited[i][j + 1]) {island.append("r");dfs(i, j + 1, island, size);}if(i+1 < n && map[i + 1][j] && !visited[i + 1][j]) {island.append("d");dfs(i + 1, j, island, size);}if (j > 0 && map[i][j - 1] && !visited[i][j - 1]) {island.append("l");