AtCoderLinkCompletionForJOI

This script adds a links to JOI problems to Atcoder pages.

  1. // ==UserScript==
  2. // @name AtCoderLinkCompletionForJOI
  3. // @namespace https://github.com/Morifo
  4. // @version 1.0.0
  5. // @description This script adds a links to JOI problems to Atcoder pages.
  6. // @author Morifo
  7. // @match https://atcoder.jp/contests/joi*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11. (function() {
  12. var urls = {'https://atcoder.jp/contests/joisc2007/tasks/joisc2007_score' : 'https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day1_20.pdf',
  13. 'https://atcoder.jp/contests/joisc2007/tasks/joisc2007_factor' : 'https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day1_20.pdf',
  14. 'https://atcoder.jp/contests/joisc2007/tasks/joisc2007_buildi': 'https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day2_21.pdf',
  15. 'https://atcoder.jp/contests/joisc2007/tasks/joisc2007_fiber' : 'https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day4_24.pdf',
  16. 'https://atcoder.jp/contests/joisc2010/tasks/joisc2010_poster' : 'https://www.ioi-jp.org/camp/2010/2010-sp-tasks/2010-sp-day1_20.pdf',
  17. 'https://atcoder.jp/contests/joisc2010/tasks/joisc2010_contest' : 'https://www.ioi-jp.org/camp/2010/2010-sp-tasks/2010-sp-day4_23.pdf',
  18. 'https://atcoder.jp/contests/joisc2007/tasks/joisc2007_mall' : 'https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day1_20.pdf',
  19. 'https://atcoder.jp/contests/joisc2008/tasks/joisc2008_nile' : 'https://www.ioi-jp.org/camp/2008/2008-sp-tasks/2008-sp_tr-day2_21.pdf',
  20. 'https://atcoder.jp/contests/joisc2008/tasks/joisc2008_origami' : 'https://www.ioi-jp.org/camp/2008/2008-sp-tasks/2008-sp_tr-day3_22.pdf',
  21. 'https://atcoder.jp/contests/joisc2010/tasks/joisc2010_stairs' : 'https://www.ioi-jp.org/camp/2010/2010-sp-tasks/2010-sp-day1_20.pdf',
  22. 'https://atcoder.jp/contests/joisc2011/tasks/joisc2011_banner' : 'https://www.ioi-jp.org/camp/2011/2011-sp-tasks/2011-sp-day1.pdf',
  23. 'https://atcoder.jp/contests/joisc2011/tasks/joisc2011_ioi' : 'https://www.ioi-jp.org/camp/2011/2011-sp-tasks/2011-sp-day4.pdf',
  24. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_h' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d3.pdf',
  25. 'https://atcoder.jp/contests/joisc2007/tasks/joisc2007_fermat' : 'https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day2_21.pdf',
  26. 'https://atcoder.jp/contests/joisc2007/tasks/joisc2007_anagra' : 'https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day3_23.pdf',
  27. 'https://atcoder.jp/contests/joisc2007/tasks/joisc2007_route' : 'https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day3_23.pdf',
  28. 'https://atcoder.jp/contests/joisc2008/tasks/joisc2008_committee' : 'https://www.ioi-jp.org/camp/2008/2008-sp-tasks/2008-sp_tr-day1_20.pdf',
  29. 'https://atcoder.jp/contests/joisc2008/tasks/joisc2008_sheet' : 'https://www.ioi-jp.org/camp/2008/2008-sp-tasks/2008-sp_tr-day1_20.pdf',
  30. 'https://atcoder.jp/contests/joisc2008/tasks/joisc2008_cheating' : 'https://www.ioi-jp.org/camp/2008/2008-sp-tasks/2008-sp_tr-day2_21.pdf',
  31. 'https://atcoder.jp/contests/joisc2008/tasks/joisc2008_fraction' : 'https://www.ioi-jp.org/camp/2008/2008-sp-tasks/2008-sp_tr-day3_22.pdf',
  32. 'https://atcoder.jp/contests/joisc2010/tasks/joisc2010_finals' : 'https://www.ioi-jp.org/camp/2010/2010-sp-tasks/2010-sp-day3_22.pdf',
  33. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_d' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d1.pdf',
  34. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_m' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d4.pdf',
  35. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_b' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d1.pdf',
  36. 'https://atcoder.jp/contests/joisc2008/tasks/joisc2008_flu' : 'https://www.ioi-jp.org/camp/2008/2008-sp-tasks/2008-sp_tr-day1_20.pdf',
  37. 'https://atcoder.jp/contests/joisc2009/tasks/joisc2009_sequence' : 'https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day1_20.pdf',
  38. 'https://atcoder.jp/contests/joisc2009/tasks/joisc2009_pyramid' : 'https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day1_20.pdf',
  39. 'https://atcoder.jp/contests/joisc2009/tasks/joisc2009_advertisement' : 'https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day2_21.pdf',
  40. 'https://atcoder.jp/contests/joisc2009/tasks/joisc2009_distribution' : 'https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day4_23.pdf',
  41. 'https://atcoder.jp/contests/joisc2010/tasks/joisc2010_sengoku' : 'https://www.ioi-jp.org/camp/2010/2010-sp-tasks/2010-sp-day1_20.pdf',
  42. 'https://atcoder.jp/contests/joisc2010/tasks/joisc2010_aplusb' : 'https://www.ioi-jp.org/camp/2010/2010-sp-tasks/2010-sp-day2_21.pdf',
  43. 'https://atcoder.jp/contests/joisc2010/tasks/joisc2010_dna' : 'https://www.ioi-jp.org/camp/2010/2010-sp-tasks/2010-sp-day2_21.pdf',
  44. 'https://atcoder.jp/contests/joisc2011/tasks/joisc2011_deciphering' : 'https://www.ioi-jp.org/camp/2011/2011-sp-tasks/2011-sp-day3.pdf',
  45. 'https://atcoder.jp/contests/joisc2012/tasks/joisc2012_joi_flag' : 'https://www.ioi-jp.org/camp/2012/2012-sp-tasks/2012-sp-day1.pdf',
  46. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_a' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d1.pdf',
  47. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_e' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d2.pdf',
  48. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_k' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d4.pdf',
  49. 'https://atcoder.jp/contests/joisc2008/tasks/joisc2008_typhoon' : 'https://www.ioi-jp.org/camp/2008/2008-sp-tasks/2008-sp_tr-day4_24.pdf',
  50. 'https://atcoder.jp/contests/joisc2009/tasks/joisc2009_stamps' : 'https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day1_20.pdf',
  51. 'https://atcoder.jp/contests/joisc2009/tasks/joisc2009_abduction' : 'https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day2_21.pdf',
  52. 'https://atcoder.jp/contests/joisc2009/tasks/joisc2009_ski' : 'https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day3_22.pdf',
  53. 'https://atcoder.jp/contests/joisc2009/tasks/joisc2009_chopsticks' : 'https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day4_23.pdf',
  54. 'https://atcoder.jp/contests/joisc2010/tasks/joisc2010_regions' : 'https://www.ioi-jp.org/camp/2010/2010-sp-tasks/2010-sp-day2_21.pdf',
  55. 'https://atcoder.jp/contests/joisc2010/tasks/joisc2010_hideseek' : 'https://www.ioi-jp.org/camp/2010/2010-sp-tasks/2010-sp-day3_22.pdf',
  56. 'https://atcoder.jp/contests/joisc2010/tasks/joisc2010_lake' : 'https://www.ioi-jp.org/camp/2010/2010-sp-tasks/2010-sp-day4_23.pdf',
  57. 'https://atcoder.jp/contests/joisc2010/tasks/joisc2010_plugs' : 'https://www.ioi-jp.org/camp/2010/2010-sp-tasks/2010-sp-day4_23.pdf',
  58. 'https://atcoder.jp/contests/joisc2011/tasks/joisc2011_joitter' : 'https://www.ioi-jp.org/camp/2011/2011-sp-tasks/2011-sp-day1.pdf',
  59. 'https://atcoder.jp/contests/joisc2011/tasks/joisc2011_guess' : 'https://www.ioi-jp.org/camp/2011/2011-sp-tasks/2011-sp-day2.pdf',
  60. 'https://atcoder.jp/contests/joisc2011/tasks/joisc2011_keycards' : 'https://www.ioi-jp.org/camp/2011/2011-sp-tasks/2011-sp-day2.pdf',
  61. 'https://atcoder.jp/contests/joisc2011/tasks/joisc2011_bookshelf' : 'https://www.ioi-jp.org/camp/2011/2011-sp-tasks/2011-sp-day4.pdf',
  62. 'https://atcoder.jp/contests/joisc2011/tasks/joisc2011_orienteering' : 'https://www.ioi-jp.org/camp/2011/2011-sp-tasks/2011-sp-day4.pdf',
  63. 'https://atcoder.jp/contests/joisc2012/tasks/joisc2012_fortune_telling' : 'https://www.ioi-jp.org/camp/2012/2012-sp-tasks/2012-sp-day3.pdf',
  64. 'https://atcoder.jp/contests/joisc2012/tasks/joisc2012_chinese' : 'https://www.ioi-jp.org/camp/2012/2012-sp-tasks/2012-sp-day4.pdf',
  65. 'https://atcoder.jp/contests/joisc2013-day1/tasks/joisc2013_bustour' : 'https://www.ioi-jp.org/camp/2013/2013-sp-tasks/2013-sp-day1.pdf',
  66. 'https://atcoder.jp/contests/joisc2013-day1/tasks/joisc2013_collecting' : 'https://www.ioi-jp.org/camp/2013/2013-sp-tasks/2013-sp-day1.pdf',
  67. 'https://atcoder.jp/contests/joisc2013-day2/tasks/joisc2013_spy' : 'https://www.ioi-jp.org/camp/2013/2013-sp-tasks/2013-sp-day2.pdf',
  68. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_a' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d1.pdf',
  69. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_b' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d1.pdf',
  70. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_f' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d2.pdf',
  71. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_c' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d1.pdf',
  72. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_i' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d3.pdf',
  73. 'https://atcoder.jp/contests/joisc2007/tasks/joisc2007_salt' : 'https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day2_21.pdf',
  74. 'https://atcoder.jp/contests/joisc2007/tasks/joisc2007_circui' : 'https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day3_23.pdf',
  75. 'https://atcoder.jp/contests/joisc2007/tasks/joisc2007_lines' : 'https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day4_24.pdf',
  76. 'https://atcoder.jp/contests/joisc2008/tasks/joisc2008_belt' : 'https://www.ioi-jp.org/camp/2008/2008-sp-tasks/2008-sp_tr-day2_21.pdf',
  77. 'https://atcoder.jp/contests/joisc2008/tasks/joisc2008_nightman' : 'https://www.ioi-jp.org/camp/2008/2008-sp-tasks/2008-sp_tr-day3_22.pdf',
  78. 'https://atcoder.jp/contests/joisc2008/tasks/joisc2008_ruins' : 'https://www.ioi-jp.org/camp/2008/2008-sp-tasks/2008-sp_tr-day4_24.pdf',
  79. 'https://atcoder.jp/contests/joisc2009/tasks/joisc2009_contest' : 'https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day2_21.pdf',
  80. 'https://atcoder.jp/contests/joisc2010/tasks/joisc2010_highway' : 'https://www.ioi-jp.org/camp/2010/2010-sp-tasks/2010-sp-day4_23.pdf',
  81. 'https://atcoder.jp/contests/joisc2011/tasks/joisc2011_dragon' : 'https://www.ioi-jp.org/camp/2011/2011-sp-tasks/2011-sp-day1.pdf',
  82. 'https://atcoder.jp/contests/joisc2011/tasks/joisc2011_report' : 'https://www.ioi-jp.org/camp/2011/2011-sp-tasks/2011-sp-day3.pdf',
  83. 'https://atcoder.jp/contests/joisc2012/tasks/joisc2012_fish' : 'https://www.ioi-jp.org/camp/2012/2012-sp-tasks/2012-sp-day1.pdf',
  84. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_c' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d1.pdf',
  85. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_e' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d2.pdf',
  86. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_g' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d2.pdf',
  87. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_j' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d3.pdf',
  88. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_d' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d1.pdf',
  89. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_f' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d2.pdf',
  90. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_g' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d2.pdf',
  91. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_j' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d3.pdf',
  92. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_l' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d4.pdf',
  93. 'https://atcoder.jp/contests/joisc2009/tasks/joisc2009_territory' : 'https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day3_22.pdf',
  94. 'https://atcoder.jp/contests/joisc2009/tasks/joisc2009_starry_sky' : 'https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day4_23.pdf',
  95. 'https://atcoder.jp/contests/joisc2011/tasks/joisc2011_shiritori' : 'https://www.ioi-jp.org/camp/2011/2011-sp-tasks/2011-sp-day2.pdf',
  96. 'https://atcoder.jp/contests/joisc2011/tasks/joisc2011_apples' : 'https://www.ioi-jp.org/camp/2011/2011-sp-tasks/2011-sp-day4.pdf',
  97. 'https://atcoder.jp/contests/joisc2012/tasks/joisc2012_constellation' : 'https://www.ioi-jp.org/camp/2012/2012-sp-tasks/2012-sp-day2.pdf',
  98. 'https://atcoder.jp/contests/joisc2012/tasks/joisc2012_rotate' : 'https://www.ioi-jp.org/camp/2012/2012-sp-tasks/2012-sp-day2.pdf',
  99. 'https://atcoder.jp/contests/joisc2012/tasks/joisc2012_kangaroo' : 'https://www.ioi-jp.org/camp/2012/2012-sp-tasks/2012-sp-day3.pdf',
  100. 'https://atcoder.jp/contests/joisc2012/tasks/joisc2012_invitation' : 'https://www.ioi-jp.org/camp/2012/2012-sp-tasks/2012-sp-day4.pdf',
  101. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_i' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d3.pdf',
  102. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_k' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d4.pdf',
  103. 'https://atcoder.jp/contests/joisc2009/tasks/joisc2009_logo' : 'https://www.ioi-jp.org/camp/2009/2009-sp-tasks/2009-sp_tr-day3_22.pdf',
  104. 'https://atcoder.jp/contests/joisc2012/tasks/joisc2012_building2' : 'https://www.ioi-jp.org/camp/2012/2012-sp-tasks/2012-sp-day1.pdf',
  105. 'https://atcoder.jp/contests/joisc2012/tasks/joisc2012_sokoban' : 'https://www.ioi-jp.org/camp/2012/2012-sp-tasks/2012-sp-day3.pdf',
  106. 'https://atcoder.jp/contests/joisc2012/tasks/joisc2012_copypaste' : 'https://www.ioi-jp.org/camp/2012/2012-sp-tasks/2012-sp-day4.pdf',
  107. 'https://atcoder.jp/contests/joisc2014/tasks/joisc2014_l' : 'https://www.ioi-jp.org/camp/2014/2014-sp-tasks/2014-sp-d4.pdf',
  108. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_h' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d3.pdf',
  109. 'https://atcoder.jp/contests/joisc2015/tasks/joisc2015_m' : 'https://www.ioi-jp.org/camp/2015/2015-sp-tasks/2015-sp-d4.pdf'}
  110. var crt_url = window.location.href;
  111. if (urls[crt_url]) {
  112. var element = document.createElement("a");
  113. element.innerText = 'PDFリンク(UserScriptにより作成)';
  114. element.href = urls[crt_url];
  115. var child = document.querySelector("#task-statement");
  116. document.querySelector("#main-container > div.row > div:nth-child(2)").insertBefore(element, child);
  117. }
  118. })();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址