QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#342255#995. 桥shuopihua#RE 0ms0kbC++141.0kb2024-03-01 10:07:242024-03-01 10:07:25

Judging History

你现在查看的是最新测评结果

  • [2024-03-01 10:07:25]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:0kb
  • [2024-03-01 10:07:24]
  • 提交

answer

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;

int n,m,cnt=1,tm;
int h[100005];
bool ok[100005];
int uu[500005];
int vv[500005];
int dfn[100005];
int low[100005];
struct node{int v,nxt;}edge[1000005];

inline void addedge(int u,int v){
	edge[++cnt]={v,h[u]};
	h[u]=cnt;return ;
}

inline void in(int &n){
	n=0;
	char c=getchar();
	while(c<'0' || c>'9') c=getchar();
	while(c>='0'&&c<='9') n=n*10+c-'0',c=getchar();
	return ;
}

inline void tarjan(int u,int in){
	dfn[u]=low[u]=++tm;
	for(int i=h[u];i;i=edge[i].nxt){
		int v=edge[i].v;
		if(!dfn[v]){
			tarjan(v,i);
			if(dfn[u]<low[v])
				ok[i]=ok[i^1]=1;
			low[u]=min(low[u],low[v]);
		}
		else if(i!=(in^1)) low[u]=min(low[u],dfn[v]);
	}
	return ;
}

int main(){
	in(n),in(m);
	for(int i=1;i<=m;i++){
		int u,v;
		in(u),in(v);
		uu[i]=u,vv[i]=v;
		addedge(u,v);
		addedge(v,u);
	}
	for(int i=1;i<=n;i++)
		if(!dfn[i]) tarjan(i,0);
	for(int i=1;i<=m;i++)
		if(ok[i*2]) printf("%d %d\n",uu[i],vv[i]);

	return 0;
}

詳細信息

Test #1:

score: 0
Runtime Error

input:

24942 387166
12556 21443
22404 16376
11073 24296
1535 11968
23745 2818
5073 12731
22550 14761
24118 12008
22695 18979
15118 13639
2080 8721
692 22578
22581 15267
9278 4127
7457 21674
17693 23448
10949 23429
9700 6009
14140 5064
7742 15164
17336 1662
18903 9760
17645 19575
6540 11942
11 4937
15282 10...

output:

3580 22348
21997 16263
22782 2580
23783 20250
218 11638
21724 10973
14705 11131
24048 12670
6588 16803
10791 24819
14572 14850
11719 1337
24073 16481
4727 14786
309 2574
22061 571
3687 15673
8224 16854
17358 14470
891 3167
12142 2461
6538 23621
8613 14871
4719 21909
3188 2066
9725 18861
659 17955
98...

result: