Submission #1607560
Source Code Expand
using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Linq.Expressions; using System.Text; class Simple { int N, M; Tuple<int, int, int>[] aby; int Q; Tuple<int, int, int>[] vw; void Solve() { //input N = io.Int; M = io.Int; aby = new Tuple<int, int, int>[M]; for (int i = 0; i < M; ++i) { int a = io.Int; int b = io.Int; int y = io.Int; aby[i] = Tuple.Create(a, b, y); } Q = io.Int; vw = new Tuple<int, int, int>[Q]; for (int i = 0; i < Q; ++i) { int v = io.Int; int w = io.Int; vw[i] = Tuple.Create(v, w, i); } //cal var ans = new int[Q]; aby = aby.OrderByDescending(t => t.Item3).ToArray(); vw = vw.OrderByDescending(t => t.Item2).ToArray(); var index = 0; var uf = new UnionFind(); uf.Init(N); for (int i = 0; i < Q;++i){ while(index<Q&&vw[index].Item2>=aby[i].Item3){ ans[vw[index].Item3] = uf.Size(vw[index].Item1); index++; } uf.Unite(aby[i].Item1,aby[i].Item2); } while(index<Q){ ans[vw[index].Item3] = uf.Size(vw[index].Item1); index++; } //ret foreach (var v in ans) Console.WriteLine(v); } SimpleIO io = new SimpleIO(); public static void Main(string[] args) { new Simple().Stream(); } void Stream() { Solve(); io.writeFlush(); } } class UnionFind { int[] dat; public void Init(int n) { dat = new int[n + 1]; for (int i = 0; i <= n; ++i) dat[i] = -1; } public void Unite(int x, int y) { x = Root(x); y = Root(y); if (x == y) return; if (dat[y] < dat[x]) swap(ref x, ref y); dat[x] += dat[y]; dat[y] = x; } public bool Find(int x, int y) { return Root(x) == Root(y); } public int Root(int x) { return dat[x] < 0 ? x : dat[x] = Root(dat[x]); } public int Size(int x) { return -dat[Root(x)]; } void swap(ref int a, ref int b) { int tmp = b; b = a; a = tmp; } } class SimpleIO { string[] nextBuffer; int BufferCnt; char[] cs = new char[] { ' ' }; StreamWriter sw = new StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false }; public SimpleIO() { nextBuffer = new string[0]; BufferCnt = 0; Console.SetOut(sw); } public string Next() { if (BufferCnt < nextBuffer.Length) return nextBuffer[BufferCnt++]; string st = Console.ReadLine(); while (st == "") st = Console.ReadLine(); nextBuffer = st.Split(cs, StringSplitOptions.RemoveEmptyEntries); BufferCnt = 0; return nextBuffer[BufferCnt++]; } public string String => Next(); public char Char => char.Parse(String); public int Int => int.Parse(String); public long Long => long.Parse(String); public double Double => double.Parse(String); public void writeFlush() { Console.Out.Flush(); } }
Submission Info
Submission Time | |
---|---|
Task | D - 道路の老朽化対策について |
User | rui0422 |
Language | C# (Mono 4.6.2.0) |
Score | 0 |
Code Size | 3348 Byte |
Status | RE |
Exec Time | 667 ms |
Memory | 44524 KB |
Judge Result
Set Name | Sample | Subtask1 | All | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 50 | 0 / 50 | ||||||||||||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | sample_01.txt, sample_02.txt, sample_03.txt |
Subtask1 | sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt |
All | sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | WA | 28 ms | 9556 KB |
sample_02.txt | AC | 25 ms | 9300 KB |
sample_03.txt | AC | 26 ms | 11348 KB |
subtask1_01.txt | WA | 30 ms | 11360 KB |
subtask1_02.txt | WA | 31 ms | 11360 KB |
subtask1_03.txt | WA | 31 ms | 11360 KB |
subtask1_04.txt | RE | 29 ms | 10976 KB |
subtask1_05.txt | WA | 31 ms | 11360 KB |
subtask1_06.txt | WA | 31 ms | 13408 KB |
subtask1_07.txt | WA | 30 ms | 9312 KB |
subtask2_01.txt | WA | 667 ms | 41828 KB |
subtask2_02.txt | WA | 572 ms | 42340 KB |
subtask2_03.txt | WA | 604 ms | 37728 KB |
subtask2_04.txt | WA | 598 ms | 39776 KB |
subtask2_05.txt | RE | 305 ms | 35368 KB |
subtask2_06.txt | WA | 548 ms | 44524 KB |
subtask2_07.txt | WA | 578 ms | 37992 KB |
subtask2_08.txt | WA | 580 ms | 41956 KB |
subtask2_09.txt | WA | 600 ms | 42336 KB |
subtask2_10.txt | WA | 608 ms | 39648 KB |
subtask2_11.txt | WA | 605 ms | 41696 KB |
subtask2_12.txt | WA | 617 ms | 41568 KB |