Universal Cup Judging System

Universal Cup

حد الوقت: 6 s حد الذاكرة: 1024 MB مجموع النقاط: 100 الصعوبة: [عرض] قابلة للهجوم ✓
الإحصائيات

Kamome изучает треугольные пути во взвешенном неориентированном графе. В частности, путь называется треугольным, если выполняется одно из следующих условий:

  • длина пути не превосходит 2, или
  • для любых трех различных ребер $e_1, e_2, e_3$ на этом пути, веса $w(e_1), w(e_2), w(e_3)$ всегда могут образовать три стороны треугольника.

Напомним, что положительные целые числа $x, y, z$ могут образовать три стороны треугольника тогда и только тогда, когда выполняются $x < y + z$, $y < z + x$ и $z < x + y$.

Kamome дает вам взвешенный неориентированный граф. Для каждой пары вершин $(u, v)$ необходимо определить, существует ли треугольный путь, начинающийся в $u$ и заканчивающийся в $v$. Считается, что для каждой вершины треугольный путь от нее к самой себе всегда существует.

Рис. 1: Часть «треугольника» Пекинского университета

Входные данные

Каждый тест содержит несколько наборов входных данных. В первой строке задано целое число $t$ ($1 \le t \le 10^5$) — количество наборов входных данных. Далее следует описание каждого набора.

Первая строка каждого набора содержит два целых числа $n$ и $m$ ($1 \le n, m \le 3000$, $1 < \sum n^2, \sum m^2 \le 3000^2$) — количество вершин и ребер графа.

Каждая из следующих $m$ строк содержит три целых числа $u_i, v_i, w_i$ ($1 \le u_i, v_i \le n$, $1 < w_i \le 10^9$), описывающих ребро $(u_i, v_i)$ и его вес $w_i$.

Граф может быть несвязным, содержать повторяющиеся ребра или кратные ребра.

Выходные данные

Для каждого набора входных данных выведите $n$ строк. Каждая строка является строкой из $n$ символов, где $j$-й символ равен $s_{i,j}$. Если $s_{i,j} = \text{'0'}$, это означает, что не существует треугольного пути, начинающегося в $i$ и заканчивающегося в $j$; в противном случае выведите '1'.

Примеры

Пример ввода 1

2
4 3
1 2 2
1 2 2
2 3 2
3 2
1 2 3
2 3 2
3 4 3

Пример вывода 1

1111
1111
1111
1111
11101110
11111111

Пример ввода 2

3 2
1 2 3
2 3 4
3 4 1

Пример вывода 2

01111000
11111000
11100111

Пример ввода 3

2 6 2
1 2 6
6 7 4
6 8 5

Пример вывода 3

11100111
01100111

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.