Submission #3402160
Source Code Expand
using System; using System.Linq;//リストの使用 using System.Collections.Generic; class Program { static void Main() { long n = long.Parse(Console.ReadLine());//int.Parseは文字列を整数に変換。 long[][] vertexesL = new long[n][];//座標と番号 long[][] vertexesR = new long[n][]; long[] looked = new long[n];//LかRのどちらかを確認したら1 long checkingL = 0; long checkingR = 0; long answer = 0; long distanceMemo = 0;//距離の総和をメモ long nowPosition = 0; for(long i = 0; i < n; i++) { long[] nums = Array.ConvertAll(Console.ReadLine().Split(' '),long.Parse); vertexesL[i] = new long[2]; vertexesL[i][0] = nums[0]; vertexesL[i][1] = i; vertexesR[i] = new long[2]; vertexesR[i][0] = nums[1]; vertexesR[i][1] = i; } Array.Sort(vertexesL, (a, b) => b[0].CompareTo(a[0]));//ソート Array.Sort(vertexesR, (a, b) => a[0].CompareTo(b[0])); while(true) { while(true)//右へ { if(looked[vertexesL[checkingL][1]] == 0) { if(nowPosition < vertexesL[checkingL][0])//移動する場合 { distanceMemo += Math.Abs(nowPosition - vertexesL[checkingL][0]); nowPosition = vertexesL[checkingL][0]; } looked[vertexesL[checkingL][1]] = 1; break; }else checkingL++; if(checkingL >= n) break; } while(true)//左へ { if(looked[vertexesR[checkingR][1]] == 0) { if(nowPosition > vertexesR[checkingR][0])//移動する場合 { distanceMemo += Math.Abs(nowPosition - vertexesR[checkingR][0]); nowPosition = vertexesR[checkingR][0]; } looked[vertexesR[checkingR][1]] = 1; break; }else checkingR++; if(checkingR >= n) break; } if(checkingR >= n)//全て確認した { distanceMemo += Math.Abs(nowPosition); answer = Math.Max(answer, distanceMemo); break; } } nowPosition = 0; distanceMemo = 0; checkingL = 0; checkingR = 0; while(true) { while(true)//左へ { if(looked[vertexesR[checkingR][1]] == 1) { if(nowPosition > vertexesR[checkingR][0])//移動する場合 { distanceMemo += Math.Abs(nowPosition - vertexesR[checkingR][0]); nowPosition = vertexesR[checkingR][0]; } looked[vertexesR[checkingR][1]] = 2; break; }else checkingR++; if(checkingR >= n) break; } while(true)//右へ { if(looked[vertexesL[checkingL][1]] == 1) { if(nowPosition < vertexesL[checkingL][0])//移動する場合 { distanceMemo += Math.Abs(nowPosition - vertexesL[checkingL][0]); nowPosition = vertexesL[checkingL][0]; } looked[vertexesL[checkingL][1]] = 2; break; }else checkingL++; if(checkingL >= n) break; } if(checkingL >= n)//全て確認した { distanceMemo += Math.Abs(nowPosition); answer = Math.Max(answer, distanceMemo); break; } } Console.WriteLine(answer); } }
Submission Info
Submission Time | |
---|---|
Task | C - Interval Game |
User | suikameron |
Language | C# (Mono 4.6.2.0) |
Score | 700 |
Code Size | 3413 Byte |
Status | AC |
Exec Time | 219 ms |
Memory | 28984 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | sample01.txt, sample02.txt, sample03.txt |
All | sample01.txt, sample02.txt, sample03.txt, in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in40.txt, sample01.txt, sample02.txt, sample03.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
in01.txt | AC | 132 ms | 22216 KB |
in02.txt | AC | 200 ms | 27964 KB |
in03.txt | AC | 124 ms | 21196 KB |
in04.txt | AC | 80 ms | 16724 KB |
in05.txt | AC | 131 ms | 22216 KB |
in06.txt | AC | 201 ms | 27964 KB |
in07.txt | AC | 136 ms | 24392 KB |
in08.txt | AC | 56 ms | 17368 KB |
in09.txt | AC | 130 ms | 23244 KB |
in10.txt | AC | 118 ms | 21072 KB |
in11.txt | AC | 206 ms | 24888 KB |
in12.txt | AC | 214 ms | 26936 KB |
in13.txt | AC | 208 ms | 24888 KB |
in14.txt | AC | 214 ms | 26936 KB |
in15.txt | AC | 211 ms | 28984 KB |
in16.txt | AC | 204 ms | 26936 KB |
in17.txt | AC | 210 ms | 26936 KB |
in18.txt | AC | 206 ms | 28984 KB |
in19.txt | AC | 207 ms | 24888 KB |
in20.txt | AC | 208 ms | 24888 KB |
in21.txt | AC | 215 ms | 28600 KB |
in22.txt | AC | 213 ms | 24504 KB |
in23.txt | AC | 208 ms | 26552 KB |
in24.txt | AC | 215 ms | 26552 KB |
in25.txt | AC | 209 ms | 26552 KB |
in26.txt | AC | 208 ms | 26552 KB |
in27.txt | AC | 215 ms | 26552 KB |
in28.txt | AC | 213 ms | 24504 KB |
in29.txt | AC | 212 ms | 26552 KB |
in30.txt | AC | 211 ms | 26552 KB |
in31.txt | AC | 216 ms | 24760 KB |
in32.txt | AC | 212 ms | 24376 KB |
in33.txt | AC | 210 ms | 24376 KB |
in34.txt | AC | 219 ms | 24376 KB |
in35.txt | AC | 212 ms | 26684 KB |
in36.txt | AC | 213 ms | 28856 KB |
in37.txt | AC | 210 ms | 24376 KB |
in38.txt | AC | 212 ms | 26424 KB |
in39.txt | AC | 212 ms | 28472 KB |
in40.txt | AC | 211 ms | 26424 KB |
sample01.txt | AC | 22 ms | 11220 KB |
sample02.txt | AC | 21 ms | 11220 KB |
sample03.txt | AC | 22 ms | 11220 KB |