Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
100325 | 罗恩祥 | 四色地图 | C++ | 运行出错 | 20 | 0 MS | 280 KB | 1917 | 2023-08-25 11:13:47 |
#include <iostream> #include <vector> using namespace std; vector <int> map[1024]; int color[100]; int N; void dfs(int node) //表示区域 { if(node == N+1) return; bool lst[5] = {1,1,1,1,1}; for(int i = 0;i < map[node].size();i++) { lst[map[node][i]] = 0; } for(int i = 1;i <= 4;i++) { if(lst[i] == 1) { color[node] = i; break; } } dfs(node+1); } int main() { cin >> N; getchar(); for(int i = 1;i <= N;i++) { string x; getline(cin,x); int index; //代表x区域 if(x[1] != ' ') //x为2位数 { index = int(x[0] - '0')*10+int(x[1] - '0'); //cout << index << endl; for(int k = 2;k < x.size();k++) { if(x[k] != ' ') //说明是个数字 { if(k+1 < x.size()) { if(x[k+1] != ' ') //两位数 { int num = int(x[k] - '0')*10+int(x[k+1] - '0'); map[index].push_back(num); } else //一位数 { map[index].push_back(int(x[k] - '0')); } } else { map[index].push_back(int(x[k] - '0')); } } } } else if(x[1] == ' ') //x为1位数 { index = int(x[0] - '0'); //cout << index << endl; for(int k = 1;k < x.size();k++) { if(x[k] != ' ') //说明是个数字 { if(k+1 < x.size()) { if(x[k+1] != ' ') //两位数 { int num = int(x[k] - '0')*10+int(x[k+1] - '0'); map[index].push_back(num); } else //一位数 { map[index].push_back(int(x[k] - '0')); } } else { map[index].push_back(int(x[k] - '0')); } } } } } /*for(int i = 1;i <= N;i++) { cout << i << ' '; for(int k = 0;k < map[i].size();k++) { cout << map[i][k] << ' '; } cout << endl; }*/ dfs(1); for(int i = 1;i <= N;i++) { cout << color[i] << ' '; } }