记录编号 |
575818 |
评测结果 |
WAWWWWWWWWWWWWWWWWWW |
题目名称 |
[HNOI 2015]菜肴制作 |
最终得分 |
5 |
用户昵称 |
Lesater |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
1.341 s |
提交时间 |
2022-09-28 20:07:18 |
内存使用 |
8.60 MiB |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int D,m,n;
struct Node{
priority_queue<int,vector<int>,greater<int> > q;
};
Node data[100001];
bool done[100001],flag,in[100001];
deque<int> p;
void dfs(int now)
{
if(done[now]==true) return;
while(!data[now].q.empty())
{
int x=data[now].q.top();
data[now].q.pop();
dfs(x);
}
done[now]=true;
if(in[now]==true) flag=true;
p.push_back(now);
in[now]=true;
return;
}
int main()
{
freopen("dishes.in","r",stdin);
freopen("dishes.out","w",stdout);
cin>>D;
while(D>0)
{
D--;
memset(done,0,sizeof done);
memset(in,0,sizeof in);
p.clear();
flag=false;
cin>>n>>m;
for(int i=1;i<=m;++i)
{
int a,b;
cin>>a>>b;
data[b].q.push(a);
}
for(int i=1;i<=n;++i)
dfs(i);
if(flag==true)
{
cout<<"Impossible!"<<endl;
continue;
}
while(!p.empty())
{
cout<<p.front()<<' ';
p.pop_front();
}
cout<<endl;
}
return 0;
}