for(int i = 0; i < size; i++)
if(!vis[g[u][i]]) dfs2(g[u][i]);
}
int main()
{
int u, v, w;
while(scanf("%d%d%d%d", &nt, &m, &src, &des) != EOF)
{
init();
if(nt == 0 && m == 0 && src == 0 && des == 0) break;
n = nt;
for(int i = 1; i <= m; i++)
{
scanf("%d%d%d", &u, &v, &w);
add(u, v, w);
add(v, u, w);
maxflow();
memset(vis, 0, sizeof(vis));
for(int i = 0; i < MAXN; i++) g[i].clear();
for(int i = 0; i < e; i += 2)
if(edge[i].c) g[edge[i].v].push_back(edge[i].u);
dfs1(src);
dfs2(des);
int flag = 1;
for(int i = 1; i <= nt; i++)
if(!vis[i]) flag = 0;
if(!flag) printf("AMBIGUOUS\n");
else printf("UNIQUE\n");
}
return 0;
}
作者:sdj222555