题目描述
解决图论问题,首先就要思考用什么样的方式存储图。但是小鑫却怎么也弄不明白如何存图才能有利于解决问题。你能帮他解决这个问题么?
输入
多组输入,到文件结尾。
每一组第一行有两个数n、m表示n个点,m条有向边。接下来有m行,每行两个数u、v、w代表u到v有一条有向边权值为w。第m+2行有一个数q代表询问次数,接下来q行每行有一个询问,输入一个数为a
注意:点的编号为0~n-1,2<=n<=500000 ,0<=m<=500000,0<=q<=500000,u!=v,w为int型数据。输入保证没有自环和重边
输出
对于每一条询问,输出一行两个数
x
,
y
。表示排序后第
a
条边是由
x
到
y
的。对于每条边来说排序规则如下:
-
权值小的在前。
-
权值相等的边出发点编号小的在前
- 权值和出发点相等的到达点编号小的在前
注:边的编号自0开始
示例输入
4 3 0 1 1 1 2 2 1 3 0 3 0 1 2
示例输出
1 3 0 1 1 2
01.#include 02.#include 03.#include 04.#include 05.using namespace std; 06.struct ooo 07.{ 08. int u,v,w; 09. void orz(int a,int b,int c) 10. { 11. u=a; 12. v=b; 13. w=c; 14. } 15. bool operator < (const ooo a)const 16. { 17. if(w!=a.w) 18. return w