{"id":44911,"date":"2023-05-04T03:56:14","date_gmt":"2022-11-12T02:54:17","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/"},"modified":"2024-04-30T02:31:43","modified_gmt":"2024-04-29T18:31:43","slug":"44911-2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/","title":{"rendered":""},"content":{"rendered":"<h1>\u59cb\u3081\u306b<\/h1>\n<p>\u30de\u30b7\u30f3\u306b\u3088\u308b\u74b0\u5883\u306e\u9055\u3044\u3067\u74b0\u5883\u69cb\u7bc9\u304c\u3067\u304d\u306a\u3044\u3068\u3044\u3046\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u305f\u3081\u3001Rust\u3067AtCoder\u306b\u53d6\u308a\u7d44\u3080\u305f\u3081\u306e\u74b0\u5883\u3092Docker\u4e0a\u3067\u69cb\u7bc9\u3057\u307e\u3057\u305f\u3002<br \/>\n\u3067\u304d\u308b\u9650\u308a\u4fbf\u5229\u306b\u3057\u305f\u3044\u3068\u601d\u3044\u3001\u3044\u308d\u3044\u308d\u30c4\u30fc\u30eb\u3092\u5165\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>\u306a\u304a\u3001\u3053\u306e\u8a18\u4e8b\u306f2023\u306b\u8a00\u8a9e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306b\u4f34\u3044\u8907\u6570\u56de\u66f8\u304d\u76f4\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<h1>\u3067\u304d\u308b\u74b0\u5883<\/h1>\n<p>\u30af\u30ea\u30c3\u30af\u307e\u305f\u306f\u7c21\u5358\u306a\u30b3\u30de\u30f3\u30c9\u3092\u6253\u3064\u3053\u3068\u3067\u30d3\u30eb\u30c9\u3001\u30c6\u30b9\u30c8\u3001\u63d0\u51fa\u3092\u884c\u3046\u3002<br \/>\n\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u306e\u5165\u529b\u3067\u30c7\u30d0\u30c3\u30b0\u3092\u884c\u3046\u3002<\/p>\n<p>\u3053\u3061\u3089\u306b\u30b3\u30fc\u30c9\u3092\u8f09\u305b\u3066\u3044\u307e\u3059<br \/>\nhttps:\/\/github.com\/uriuriboo\/atcoder_rust<br \/>\n\u4e00\u4eba\u3067\u306f\u306a\u304b\u306a\u304b\u53b3\u3057\u3044\u3068\u3053\u308d\u304c\u3042\u308b\u306e\u3067\u6a5f\u80fd\u306e\u8ffd\u52a0\u3084\u554f\u984c\u70b9\u3001\u8a00\u8a9e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306a\u3069\u306e\u3067\u6539\u5584\u6848\u3084\u5831\u544a\u304c\u3042\u308a\u307e\u3057\u305f\u3089issue\u3084PR\u306a\u3069\u3092\u304f\u3060\u3055\u3044\uff01<\/p>\n<p>\u6ce8\u610f\u70b9<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">\u6539\u884c\u30b3\u30fc\u30c9\u306e\u9055\u3044\u3067\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u304c\u52d5\u304b\u306a\u3044\u3053\u3068\u304c\u3042\u3063\u305f\u306e\u3067\u6ce8\u610f\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\u4e8c\u56de\u76ee\u4ee5\u964d\u74b0\u5883\u3082Docker\u3067\u958b\u304f\u3068\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u304c\u4e0d\u8981\u3067\u3059\u304c\u8d70\u3063\u3066\u3057\u307e\u3046\u306e\u3067Ctrl+C\u3067\u4e2d\u65ad\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/ul>\n<h2>\u74b0\u5883\u3001\u30c4\u30fc\u30eb<\/h2>\n<p>windows10\u300111<br \/>\nDocker<br \/>\nWSL2<br \/>\nvscode<br \/>\ncargo-compete<br \/>\ncargo-member<br \/>\npython3<\/p>\n<h3>vscode\u306e\u62e1\u5f35\u6a5f\u80fd<\/h3>\n<p>\u30ed\u30fc\u30ab\u30eb\u3067\u6271\u3046\u3082\u306e<br \/>\nDocker<br \/>\nDev Containers<\/p>\n<p>\u4eee\u60f3\u74b0\u5883\u3067\u6271\u3046\u3082\u306e(\u3060\u3044\u305f\u3044\u74b0\u5883\u69cb\u7bc9\u6642\u306b\u5165\u3063\u3066\u307e\u3059)<br \/>\nRust(rust-anayzer\u3067\u306f\u306a\u3044)<br \/>\nCodeLLDB\uff08\u30c7\u30d0\u30c3\u30ac\u30fc)<br \/>\nrust-anayzer<br \/>\nGithub copilot<br \/>\ntaskrunner<\/p>\n<h2>\u624b\u98061 Docker\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<p>windows\u306a\u3089\u307e\u305aWSL2\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<br \/>\nwindow10\u306a\u3089powershell\u3067<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">wsl<\/span> <span class=\"nt\">--install<\/span>\r\n<\/code><\/pre>\n<p>\u3068\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u305d\u306e\u5f8cDocker\u516c\u5f0f\u30b5\u30a4\u30c8\u304b\u3089\u30a4\u30f3\u30b9\u30c8\u30fc\u30e9\u3092\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u3066\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<br \/>\nmac\u306a\u3089docker\u3092\u3059\u3050\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3067\u304d\u305f\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n<p>\u53c2\u8003\u3068\u306a\u308a\u305d\u3046\u306a\u3082\u306e<br \/>\nhttps:\/\/learn.microsoft.com\/ja-jp\/windows\/wsl\/install<br \/>\n<iframe loading=\"lazy\" title=\"Docker\u8d85\u5165\u9580\u8b1b\u5ea7 \u5408\u4f75\u7248 | \u30bc\u30ed\u304b\u3089\u5b9f\u8df5\u3059\u308b4\u6642\u9593\u306e\u30d5\u30eb\u30b3\u30fc\u30b9\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/lZD1MIHwMBY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<h2>\u624b\u98062 \u30b3\u30f3\u30c6\u30ca\u306e\u7acb\u3061\u4e0a\u3052<\/h2>\n<p>vscode\u3092\u7acb\u3061\u4e0a\u3052\u3066\u62e1\u5f35\u6a5f\u80fd\u306eDocker\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u6b21\u306b\u5de6\u4e0b\u306b\u3042\u308b\u7dd1\u306e\u30dc\u30bf\u30f3\u3092\u62bc\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5b7837434c4406cea6d6\/21-0.png\" alt=\"image.png\" \/><\/div>\n<p>\u3059\u308b\u3068\u4e0a\u90e8\u306bOpen Folder in Cointaner\u3068\u51fa\u3066\u304d\u307e\u3059\u306e\u3067\u30af\u30ea\u30c3\u30af\u3057\u3001\u30c0\u30a6\u30f3\u30ed\u30fc\u30c9\u3057\u305f\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u958b\u3044\u3066\u304f\u3060\u3055\u3044\u3002\u79c1\u306f\u30d5\u30a9\u30eb\u30c0\u540d\u3092atcoder_rust(github\u306e\u30ea\u30dd\u30b8\u30c8\u30ea\u540d\u3068\u540c\u3058)\u306b\u8a2d\u5b9a\u3057\u307e\u3057\u305f\u3002\u5f8c\u306b\u30c6\u30b9\u30c8\u3092\u3059\u308b\u969b\u306e\u30d1\u30b9\u306e\u6307\u5b9a\u306b\u4f7f\u7528\u3057\u307e\u3059\u306e\u3067\u6c17\u3092\u3064\u3051\u3066\u304f\u3060\u3055\u3044\u3002\u305d\u3046\u3059\u308c\u3070\u7c21\u5358\u306aRust\u74b0\u5883\u306e\u5b8c\u6210\u3067\u3059\u3002<br \/>\n\u3053\u3053\u3067\u5fc5\u8981\u306a\u30c4\u30fc\u30eb\u304c\u4e00\u90e8\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059\u3002<br \/>\n\u9014\u4e2d\u3067\u6570\u5b57\u306e\u5165\u529b\u304c\u6c42\u3081\u3089\u308c\u308b\u305f\u3081\u3001\u3053\u3060\u308f\u308a\u304c\u306a\u3051\u308c\u3070 2 \u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044<br \/>\n\u3082\u3057\u30a8\u30e9\u30fc\u304c\u3067\u308b\u3088\u3046\u306a\u3089\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u6539\u884c\u306e\u5f62\u5f0f\u304c\u539f\u56e0\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<\/p>\n<p>.devcontainer\/postCreateCommand.bash\u3067\u30a8\u30e9\u30fc\u304c\u51fa\u305f\u3089(i)\u3001(ii)\u306e\u65b9\u6cd5\u3092\u8a66\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5b7837434c4406cea6d6\/24-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5b7837434c4406cea6d6\/25-0.png\" alt=\"image.png\" \/><\/div>\n<p>(ii)\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u6253\u3064<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">sudo chmod <\/span>a+x .devcontainer\/postCreateCommand.bash\r\n<\/code><\/pre>\n<p>\u6700\u5f8c\u306b.devcontainer\/postCreateCommand.bash\u3092\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u304b\u3089\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<br \/>\n\u5b9f\u884c\u65b9\u6cd5<\/p>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span>.\/.devcontainer\/postCreateCommand.bash\r\n<\/code><\/pre>\n<p>\u7acb\u3061\u4e0a\u3052\u5f8c\u306fAtCoder\u306e\u74b0\u5883\u306b\u3059\u308b\u304b\u3001\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u304b\u805e\u304b\u308c\u308b\u306e\u3067\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u8aad\u3093\u3067\u9069\u5b9c\u64cd\u4f5c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<h2>\u624b\u98063 vscode\u306e\u8a2d\u5b9a<\/h2>\n<h3>\u62e1\u5f35\u6a5f\u80fd<\/h3>\n<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306frust-analyzer\u3092\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u304f\u3060\u3055\u3044rust1.42\u3067\u306f\u52d5\u304b\u306a\u3044\u305f\u3081\u3067\u3059\u3002\u4eca\u56de\u306f\u958b\u767a\u304c\u30b5\u30dd\u30fc\u30c8\u304c\u4e2d\u65ad\u3057\u305fRust(\u62e1\u5f35\u6a5f\u80fd)\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<br \/>\n\u7e70\u308a\u8fd4\u3057\u306b\u306a\u308a\u307e\u3059\u304crust\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u304c1.65\u3088\u308a\u5927\u304d\u3044\u306a\u3089\u30a2\u30f3\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u306a\u304f\u3066\u3082\u5927\u4e08\u592b\u3067\u3059\u3001<\/p>\n<p>\u6b21\u306bRust\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u958b\u304f\u3068vscode\u306e\u53f3\u4e0b\u306e\u753b\u9762\u306bRust langages server\u304c\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u304b\u805e\u304b\u308c\u308b\u306e\u3067Yes\u3092\u62bc\u3059\u3068\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u3067\u88dc\u5b8c\u304c\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n<p>\u3061\u306a\u307f\u306brust-analyzer\u3092\u7121\u7406\u77e2\u7406\u52d5\u304b\u3057\u3066\u3044\u308b\u65b9\u6cd5\u3082\u3042\u308b\u3088\u3046\u3067\u3059\u3002<br \/>\nhttps:\/\/zenn.dev\/yajamon\/articles\/be689814d242f8<\/p>\n<p>\u6ce8\u610f\u70b9<\/p>\n<p>\u4e8c\u3064\u4ee5\u4e0a\u306e\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3092\u4f5c\u308b\u3068\u52d5\u304b\u306a\u304f\u306a\u308b\u3088\u3046\u3067\u3059<br \/>\nhttps:\/\/zenn.dev\/fah_72946_engr\/articles\/cf53487d3cc5fc<br \/>\n\u89e3\u6c7a\u65b9\u6cd5\u3068\u3057\u3066cargo-member\u3092\u4f7f\u3046\u3053\u3068\u304c\u4e0a\u3052\u3089\u308c\u307e\u3059<\/p>\n<h3>\u30c7\u30d0\u30c3\u30b0<\/h3>\n<p>.vscode\/launch.json\u306b\u4ee5\u4e0b\u306e\u30b3\u30fc\u30c9\u3092\u8a18\u8ff0\u3057\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"version\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"0.2.0\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"nl\">\"configurations\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n        <span class=\"p\">{<\/span>\r\n            <span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"lldb\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"nl\">\"request\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"launch\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"nl\">\"name\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"Debug\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"nl\">\"sourceLanguages\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n                <span class=\"s2\">\"rust\"<\/span>\r\n            <span class=\"p\">],<\/span>\r\n            <span class=\"err\">\/\/<\/span><span class=\"nl\">\"preLaunchTask\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"cargo build\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"nl\">\"internalConsoleOptions\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"openOnSessionStart\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"nl\">\"program\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"${workspaceRoot}\/target\/debug\/abc252-${fileBasenameNoExtension}\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"nl\">\"args\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[],<\/span>\r\n            <span class=\"nl\">\"stdio\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n               <span class=\"s2\">\"${workspaceFolder}\/input.txt\"<\/span>\r\n            <span class=\"p\">],<\/span>\r\n        <span class=\"p\">}<\/span>\r\n    <span class=\"p\">]<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<p>\u30db\u30fc\u30e0\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u76f4\u4e0b\u306binput.txt\u304c\u5165\u529b\u30d5\u30a1\u30a4\u30eb\u3067\u3059\u3002<br \/>\n\u305d\u3057\u3066\u30c7\u30d0\u30c3\u30b0\u3057\u305f\u3044\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u304dF10\u30ad\u30fc\u3092\u62bc\u305b\u3070\u958b\u59cb\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u30b3\u30f3\u30c6\u30b9\u30c8\u3054\u3068\u306bprogram\u306e\u9805\u76ee\u306b\u3042\u308babc-252\u306e\u90e8\u5206\u3092\u73fe\u5728\u53c2\u52a0\u3057\u3066\u3044\u308b\u30b3\u30f3\u30c6\u30b9\u30c8\u306b\u66f8\u304d\u63db\u3048\u3066\u304f\u3060\u3055\u3044\u3002\u3053\u3053\u306f\u4eca\u56de\u4f5c\u3063\u305f\u74b0\u5883\u306e\u8981\u6539\u5584\u3067\u3059\u3002<br \/>\n\u4f8b:<br \/>\nabc\u30b3\u30f3\u30c6\u30b9\u30c8108\u56de \u2192 abc-108<br \/>\narc\u30b3\u30f3\u30c6\u30b9\u30c810\u56de \u2192 arc-10<\/p>\n<p>2023\/6\/3\u8ffd\u8a18<br \/>\n\u30c6\u30b9\u30c8\u3092\u884c\u3046\u969b\u306b\u81ea\u52d5\u3067launch.json\u3092\u66f8\u304d\u63db\u3048\u308b\u3088\u3046\u306b\u8a2d\u5b9a\u3057\u307e\u3057\u305f\u3002<br \/>\n\u3053\u3061\u3089\u306f\u307e\u3060\u52d5\u304b\u3057\u3066\u3044\u306a\u3044\u306e\u3067\u691c\u8a3c\u3092\u3057\u307e\u3059\u3002<br \/>\nabc\u3067\u52d5\u304f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3057\u305f\u3002<\/p>\n<h3>\u30b9\u30cb\u30da\u30c3\u30c8<\/h3>\n<p>\u30b9\u30cb\u30da\u30c3\u30c8\u306e\u6a5f\u80fd\u3092\u4f7f\u3046\u3053\u3068\u3067\u7c21\u5358\u306b\u30b3\u30fc\u30c9\u3092\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u30b9\u30cb\u30da\u30c3\u30c8\u306f\u7834\u7247\u3068\u3044\u3046\u610f\u5473\u3092\u6301\u3061\u307e\u3059\u3002<\/p>\n<p>\u8a73\u3057\u304f\u306f\u3053\u3061\u3089\u3092\u3054\u89a7\u304f\u3060\u3055\u3044\u3002<br \/>\nhttps:\/\/qiita.com\/12345\/items\/97ba616d530b4f692c97<br \/>\n\u30d5\u30a1\u30a4\u30eb\u2192\u30e6\u30fc\u30b6\u8a2d\u5b9a\u2192\u30b9\u30cb\u30da\u30c3\u30c8\u3092\u9078\u629e\u3057\u3001\u30b3\u30de\u30f3\u30c9\u6b04\u306brust\u3068\u6253\u3061\u8fbc\u307frust.json\u3092\u958b\u3044\u3066\u3001\u3088\u304f\u4f7f\u3046\u30b3\u30fc\u30c9\u3092\u66f8\u304d\u307e\u3057\u3087\u3046\u3002<br \/>\n\u79c1\u306f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3068\u3057\u3066\u4ee5\u4e0b\u306e\u30b9\u30cb\u30da\u30c3\u30c8\u3092\u767b\u9332\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"template\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"nl\">\"prefix\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"tmplt\"<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"nl\">\"body\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n            <span class=\"s2\">\"#[allow(unused_imports)]\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"s2\">\"use proconio::{marker::*, *};\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"s2\">\"#[allow(unused_imports)]\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"s2\">\"use std::{cmp::*, collections::*, *};<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"s2\">\"#[fastout]\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"s2\">\"fn main(){\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"s2\">\"<\/span><span class=\"se\">\\t<\/span><span class=\"s2\">let mut ans:usize = 0;\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"s2\">\"<\/span><span class=\"se\">\\t<\/span><span class=\"s2\">input!{\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"s2\">\"<\/span><span class=\"se\">\\t\\t<\/span><span class=\"s2\">n:usize,\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"s2\">\"<\/span><span class=\"se\">\\t\\t<\/span><span class=\"s2\">a:[usize;n]\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"s2\">\"<\/span><span class=\"se\">\\t<\/span><span class=\"s2\">}<\/span><span class=\"se\">\\n<\/span><span class=\"s2\">\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"s2\">\"<\/span><span class=\"se\">\\t<\/span><span class=\"s2\">println!(<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">{}<\/span><span class=\"se\">\\\"<\/span><span class=\"s2\">,ans);\"<\/span><span class=\"p\">,<\/span>\r\n            <span class=\"s2\">\"}\"<\/span>\r\n        <span class=\"p\">],<\/span>\r\n        <span class=\"nl\">\"description\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\"<\/span>\r\n    <span class=\"p\">},<\/span>\r\n<span class=\"p\">}<\/span>\r\n<\/code><\/pre>\n<h2>\u624b\u98064 \u30c4\u30fc\u30eb\u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h2>\n<pre class=\"post-pre\"><code><span class=\"nv\">$ <\/span><span class=\"nb\">touch <\/span>rust-toolchain\r\n<span class=\"nv\">$ <\/span><span class=\"nb\">echo<\/span> <span class=\"s2\">\"1.70\"<\/span> <span class=\"o\">&gt;<\/span> rust-toolchain\r\n<span class=\"nv\">$ <\/span>cargo <span class=\"nt\">-V<\/span>\r\n<span class=\"nv\">$ <\/span>rustup <span class=\"nb\">install <\/span>1.70\r\n<span class=\"nv\">$ <\/span>rustup <span class=\"nb\">install <\/span>1.70.0-x86_64-unknown-linux-gnu\r\n<\/code><\/pre>\n<p>\u74b0\u5883\u69cb\u7bc9\u3067\u81ea\u52d5\u5316\u3067\u304d\u306a\u304b\u3063\u305f\u90e8\u5206\u3067\u3059\u3002<\/p>\n<p>\u7af6\u6280\u30d7\u30ed\u88dc\u52a9\u30c4\u30fc\u30eb\u306ecargo-compete\u304c\u30c6\u30b9\u30c8\u306a\u3069\u3092\u884c\u3046\u305f\u3081\u306b\u4f7f\u7528\u3059\u308brust-toolchain\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<br \/>\n\u6614rust-toolchain\u3067\u52d5\u304b\u306a\u304b\u3063\u305f\u3068\u304d\u3044\u308d\u3044\u308d\u8a66\u3057\u305f\u7d50\u679c\u3053\u306e\u3088\u3046\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3068\u89e3\u6c7a\u3057\u307e\u3057\u305f\u3002(\u79c1\u81ea\u8eab\u3053\u306e\u3042\u305f\u308a\u306f\u3042\u307e\u308a\u308f\u304b\u3063\u3066\u304a\u3089\u305a\u52c9\u5f37\u4e2d\u3067\u3059)<\/p>\n<p>\u3053\u3053\u3067\u306f\u3082\u3057\u304b\u3057\u305f\u3089rustup install 1.70\u306f\u3044\u3089\u306a\u3044\u304b\u3082\u3057\u308c\u306a\u3044\u3067\u3059\u3002<\/p>\n<p>\u8ffd\u8a18<br \/>\n\u3053\u3061\u3089\u306b\u8cea\u554f\u304c\u6295\u7a3f\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002<br \/>\nhttps:\/\/stackoverflow.com\/questions\/49368232\/what-is-a-default-host-triple-in-rust<\/p>\n<p>\u516c\u5f0f\u306b\u66f8\u3044\u3066\u3042\u308a\u307e\u3057\u305f\u3002<br \/>\nhttps:\/\/github.com\/rust-lang-ja\/atcoder-rust-resources\/wiki\/2020-Update<br \/>\nhttps:\/\/doc.rust-lang.org\/stable\/rustc\/platform-support.html<\/p>\n<p>\u3053\u3053\u3067rust-analyzer\u3092\u4f7f\u3046\u306a\u30891.42\u30921.70\u306b\u3057\u3066\u304f\u3060\u3055\u3044\u3002<br \/>\nrust-analyer\u304c\u52d5\u304b\u306a\u3044\u3068\u304d\u306fvscode\u3092\u518d\u8d77\u52d5\u3057\u305f\u3089\u52d5\u304d\u307e\u3057\u305f\u3002<\/p>\n<h1>\u554f\u984c\u3092\u89e3\u304f\u3068\u304d\u306e\u4f7f\u7528\u65b9\u6cd5<\/h1>\n<h3>\u30d3\u30eb\u30c9\u3068\u30c6\u30b9\u30c8<\/h3>\n<p>\u30d3\u30eb\u30c9\u3068\u30c6\u30b9\u30c8\u3092\u884c\u3046\u30b9\u30af\u30ea\u30d7\u30c8\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u66f8\u3044\u3066\u3044\u307e\u3059<br \/>\narc\u3084agc\u306b\u51fa\u308b\u3068\u304d\u306fcontest\u5909\u6570\u306e\u5024\u3092\u5909\u66f4\u3057\u3066\u304f\u3060\u3055\u3044<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">#!\/bin\/bash<\/span>\r\n<span class=\"nv\">contest<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"abc\"<\/span>\r\n<span class=\"nv\">num<\/span><span class=\"o\">=<\/span><span class=\"nv\">$1<\/span>\r\n<span class=\"nv\">aplha<\/span><span class=\"o\">=<\/span><span class=\"nv\">$2<\/span>\r\n<span class=\"nb\">cd<\/span> \/workspaces\/atcoder_rust\/<span class=\"k\">${<\/span><span class=\"nv\">contest<\/span><span class=\"k\">}${<\/span><span class=\"nv\">num<\/span><span class=\"k\">}<\/span>\/src\/bin\/\r\ncargo compete s <span class=\"k\">${<\/span><span class=\"nv\">aplha<\/span><span class=\"k\">}<\/span>\r\n<\/code><\/pre>\n<p>\u4f7f\u3044\u65b9<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> .\/bt.bash \u30b3\u30f3\u30c6\u30b9\u30c8\u306e\u756a\u53f7 \u554f\u984c\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\r\n<\/code><\/pre>\n<p>\u4f7f\u7528\u65b9\u6cd5\u306e\u5177\u4f53\u4f8b<br \/>\nABC\u30b3\u30f3\u30c6\u30b9\u30c8277 A\u554f\u984c\u306e\u5834\u5408(contest\u306e\u5909\u6570\u306f\u5909\u66f4\u3057\u3066\u3044\u307e\u305b\u3093)<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> .\/bt.bash 277 a\r\n<\/code><\/pre>\n<p>\u30af\u30ea\u30c3\u30af\u3067\u884c\u3046\u5834\u5408<br \/>\n2023\/5\/31\u8ffd\u52a0<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5b7837434c4406cea6d6\/65-0.png\" alt=\"image.png\" \/><\/div>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5b7837434c4406cea6d6\/66-0.png\" alt=\"image.png\" \/><\/div>\n<p>TASKRUNNER-&gt;Workspace-&gt;build &amp; test \u3092\u30af\u30ea\u30c3\u30af\u3059\u308b\u3068\u65b0\u305f\u306b\u30bf\u30fc\u30df\u30ca\u30eb\u304c\u958b\u304d\u30c6\u30b9\u30c8\u7d50\u679c\u304c\u8868\u793a\u3055\u308c\u307e\u3059\u3002<\/p>\n<h3>\u554f\u984c\u306e\u63d0\u51fa<\/h3>\n<p>\u63d0\u51fa\u3059\u308b\u305f\u3081\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u66f8\u3044\u3066\u3044\u307e\u3059<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">#!\/bin\/bash<\/span>\r\n<span class=\"nv\">contest<\/span><span class=\"o\">=<\/span><span class=\"s2\">\"abc\"<\/span>\r\n<span class=\"nv\">num<\/span><span class=\"o\">=<\/span><span class=\"nv\">$1<\/span>\r\n<span class=\"nv\">aplha<\/span><span class=\"o\">=<\/span><span class=\"nv\">$2<\/span>\r\n<span class=\"nb\">cd<\/span> \/workspaces\/atcder_rust\/<span class=\"k\">${<\/span><span class=\"nv\">contest<\/span><span class=\"k\">}${<\/span><span class=\"nv\">num<\/span><span class=\"k\">}<\/span>\/src\/bin\/\r\ncargo compete s <span class=\"k\">${<\/span><span class=\"nv\">aplha<\/span><span class=\"k\">}<\/span>\r\n<\/code><\/pre>\n<p>\u4f7f\u3044\u65b9<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> .\/sub.bash \u30b3\u30f3\u30c6\u30b9\u30c8\u306e\u756a\u53f7 \u554f\u984c\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\r\n<\/code><\/pre>\n<p>\u5177\u4f53\u4f8b<br \/>\nABC\u30b3\u30f3\u30c6\u30b9\u30c8208 D\u554f\u984c\u306e\u5834\u5408(contest\u306e\u5909\u6570\u306f\u5909\u66f4\u3057\u3066\u3044\u307e\u305b\u3093)<\/p>\n<pre class=\"post-pre\"><code><span class=\"gp\">$<\/span> .\/sub.bash 208 d\r\n<\/code><\/pre>\n<p>\u8a66\u9a13\u7684\u306bTASKRUNNER-&gt;submit\u304b\u3089\u63d0\u51fa\u3067\u304d\u308b\u6a5f\u80fd\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f\u3002<br \/>\n\u30a8\u30e9\u30fc\u304c\u3042\u308a\u307e\u3057\u305f\u3089\u304a\u77e5\u3089\u305b\u304f\u3060\u3055\u3044\u3002<\/p>\n<h1>\u74b0\u5883\u8a2d\u5b9a\u306e\u8aac\u660e<\/h1>\n<h2>postCreateCommand.bash<\/h2>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>rust-toolchain\u3092\u304c\u5b58\u5728\u3057\u3066\u3044\u308b\u3068\u304dcargo-compete\u3092\u5b9f\u884c\u3059\u308b\u3068\u3046\u307e\u304f\u5b9f\u884c\u3067\u304d\u306a\u3044\u3053\u3068\u304c\u3042\u3063\u305f\u305f\u3081\u524a\u9664\u3057\u3066\u3044\u307e\u3059\u3002\u306f\u3063\u304d\u308a\u306f\u3057\u308a\u307e\u305b\u3093\u304c\u30a8\u30c7\u30a3\u30b7\u30e7\u30f3\u304c2018\u306b\u3057\u304b\u5bfe\u5fdc\u3057\u3066\u3044\u306a\u3044\u304b\u3042\u305f\u308a\u306e\u554f\u984c\u3060\u3063\u305f\u3068\u601d\u3044\u307e\u3059\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u30d3\u30eb\u30c9\u3068\u30c6\u30b9\u30c8\u3092\u884c\u3046\u30b9\u30af\u30ea\u30d7\u30c8\u3068\u63d0\u51fa\u7528\u30b9\u30af\u30ea\u30d7\u30c8\u306b\u6a29\u9650\u3092\u4e0e\u3048\u3066\u3044\u307e\u3059\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>cargo-compete\u3067AtCoder\u5411\u3051\u306e\u8a2d\u5b9a\u3092\u3057\u3066\u3044\u307e\u3059<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3057\u305f\u90e8\u5206\u306f\u30b7\u30a7\u30eb\u3067\u5b9f\u884c\u3057\u305f\u3068\u304d\u30a8\u30e9\u30fc\u304c\u8d77\u304d\u305f\u305f\u3081\u30b3\u30e1\u30f3\u30c8\u30a2\u30a6\u30c8\u3057\u3066\u624b\u52d5\u3067\u884c\u3044\u307e\u3057\u305f\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u30ed\u30b0\u30a4\u30f3\u6a5f\u80fd\u3092\u4f7f\u3063\u305f\u30ed\u30b0\u30a4\u30f3\u3092\u3057\u3066\u3044\u307e\u3059\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>fish\u3068\u305d\u306e\u30d7\u30e9\u30b0\u30a4\u30f3\u306efisher\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u3044\u307e\u3059\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>AtCoder\u7528\u306e\u521d\u671f\u8a2d\u5b9a\u3092\u3057\u3066\u3044\u307e\u3059<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>AtCoder\u306b\u30ed\u30b0\u30a4\u30f3\u3092\u3057\u3088\u3046\u3068\u3057\u3066\u304a\u308a\u30e6\u30fc\u30b6\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u5165\u529b\u3092\u6c42\u3081\u3066\u3044\u307e\u3059<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>Rust\u7528\u306eac-library\u3092\u30af\u30ed\u30fc\u30f3\u3057\u3066\u3044\u307e\u3059\u3002<\/ol>\n<pre class=\"post-pre\"><code><span class=\"c\">#!\/bin\/bash<\/span>\r\n\r\n<span class=\"k\">if<\/span> <span class=\"o\">[<\/span> <span class=\"nt\">-e<\/span> rust-toolchain <span class=\"o\">]<\/span><span class=\"p\">;<\/span><span class=\"k\">then\r\n    <\/span><span class=\"nb\">rm <\/span>rust-toolchain\r\n<span class=\"k\">fi\r\n<\/span><span class=\"nb\">echo <\/span>give permission to bashfiles\r\n<span class=\"nb\">chmod <\/span>u+x bt.bash,sub.bash,scripts\/bt.bash,scripts\/sub.bash,scripts\/change_launch.bash\r\n\r\n<span class=\"c\"># install rust1.70.0<\/span>\r\n<span class=\"nb\">echo<\/span> <span class=\"s2\">\"1.70\"<\/span> <span class=\"o\">&gt;<\/span> rust-toolchain\r\ncargo <span class=\"nt\">-V<\/span>\r\n\r\n<span class=\"nb\">touch <\/span>Cargo.toml\r\n\r\n<span class=\"c\"># install tools<\/span>\r\ncargo <span class=\"nb\">install <\/span>cargo-compete\r\ncargo <span class=\"nb\">install <\/span>cargo-member\r\ncargo compete i atcoder\r\n<span class=\"nb\">echo <\/span>clone ac-library-rs\r\ngit clone https:\/\/github.com\/rust-lang-ja\/ac-library-rs.git\r\ncargo member include ac-library-rs\r\n<span class=\"c\"># cargo member include library<\/span>\r\n\r\n<span class=\"nb\">echo <\/span>login to atcoder\r\ncargo compete l atcoder\r\n\r\n\r\n<span class=\"c\"># rustup install 1.70<\/span>\r\n<span class=\"c\"># rustup install 1.70.0-x86_64-unknown-linux-gnu<\/span>\r\n\r\n<span class=\"c\"># The installation of fish is your choice.<\/span>\r\n<span class=\"c\"># echo install fish and fisher<\/span>\r\n<span class=\"c\"># sudo apt-add-repository ppa:fish-shell\/release-3<\/span>\r\n<span class=\"c\"># sudo apt-get update<\/span>\r\n<span class=\"c\"># sudo apt-get install fish<\/span>\r\n<span class=\"c\"># curl -sL https:\/\/git.io\/fisher | source &amp;&amp; fisher install jorgebucaran\/fisher<\/span>\r\n<\/code><\/pre>\n<h2>tasks.json<\/h2>\n<p>.vscode\/tasks.json\u3068\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u3068TASKRUNNER\u3092\u4f7f\u3063\u3066\u30af\u30ea\u30c3\u30af\u304b\u3089\u30d3\u30eb\u30c9\u3068\u30c6\u30b9\u30c8\u3001\u63d0\u51fa\u3092\u884c\u3048\u308b\u3088\u3046\u306b\u3057\u3066\u3044\u307e\u3059\u3002script\u30d5\u30a9\u30eb\u30c0\u306b\u4f7f\u7528\u3055\u308c\u308b\u30d5\u30a1\u30a4\u30eb\u306f\u7f6e\u304b\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<p>Rust\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u958b\u3044\u305f\u72b6\u614b\u3067\u4f7f\u3046\u3053\u3068\u3092\u60f3\u5b9a\u3057\u3066\u304a\u308a\u3001python\u306b\u305d\u306e\u30d5\u30a1\u30a4\u30eb\u306e\u7d76\u5bfe\u30d1\u30b9\u3092\u6e21\u3057\u3066\u305d\u306epython\u304b\u3089\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u547c\u3073\u51fa\u3057\u3066\u3044\u307e\u3059\u3002<br \/>\n\u53c2\u8003<br \/>\nhttps:\/\/magicode.io\/shunnya0715\/articles\/9734ba4922894b329a756b6f3592e8ed<\/p>\n<pre class=\"post-pre\"><code><span class=\"p\">{<\/span>\r\n\t<span class=\"nl\">\"version\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"2.0.0\"<\/span><span class=\"p\">,<\/span>\r\n\t<span class=\"nl\">\"tasks\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> <span class=\"p\">{<\/span>\r\n\t\t\t\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"cargo\"<\/span><span class=\"p\">,<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"command\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"build\"<\/span><span class=\"p\">,<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"problemMatcher\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t\t<span class=\"s2\">\"$rustc\"<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"p\">],<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"group\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"build\"<\/span><span class=\"p\">,<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"label\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"rust: cargo build\"<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> <span class=\"p\">},<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> <span class=\"p\">{<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"shell\"<\/span><span class=\"p\">,<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"command\"<\/span><span class=\"p\">:[<\/span> <span class=\"s2\">\"cd ${workspaceFolder}\/abc253\/src\/bin\/ &amp; pwd\"<\/span><span class=\"p\">,<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t\t<span class=\"err\">\/\/<\/span><span class=\"s2\">\"cargo build &amp; cargo compete t ${fileBasenameNoExtension}\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"p\">],<\/span>\r\n\t\t\t\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"group\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"build\"<\/span><span class=\"p\">,<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"label\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"rust: cd cargo build\"<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> <span class=\"p\">},<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> <span class=\"p\">{<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"shell\"<\/span><span class=\"p\">,<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"command\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t\t<span class=\"s2\">\"pwd\"<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"p\">],<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"group\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"test\"<\/span><span class=\"p\">,<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> \t<span class=\"nl\">\"label\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"pwd\"<\/span>\r\n\t\t<span class=\"err\">\/\/<\/span> <span class=\"p\">},<\/span>\r\n\t\t<span class=\"p\">{<\/span>\r\n\t\t\t<span class=\"nl\">\"label\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"build &amp; test\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"shell\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"command\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"python3\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"args\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n\t\t\t\t<span class=\"s2\">\"${workspaceFolder}\/scripts\/test.py\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t<span class=\"s2\">\"${file}\"<\/span>\r\n\t\t\t<span class=\"p\">],<\/span>\r\n\t\t\t<span class=\"nl\">\"group\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n\t\t\t\t<span class=\"nl\">\"kind\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"build\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t<span class=\"nl\">\"isDefault\"<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span>\r\n\t\t\t<span class=\"p\">},<\/span>\r\n\t\t\t<span class=\"nl\">\"problemMatcher\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[],<\/span>\r\n\t\t<span class=\"p\">},<\/span>\r\n\t\t<span class=\"p\">{<\/span>\r\n\t\t\t<span class=\"nl\">\"label\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"submit\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"shell\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"command\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"python3\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"args\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n\t\t\t\t<span class=\"s2\">\"${workspaceFolder}\/scripts\/sub.py\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t<span class=\"s2\">\"${file}\"<\/span>\r\n\t\t\t<span class=\"p\">],<\/span>\r\n\t\t\t<span class=\"nl\">\"group\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n\t\t\t\t<span class=\"nl\">\"kind\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"build\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t<span class=\"nl\">\"isDefault\"<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span>\r\n\t\t\t<span class=\"p\">},<\/span>\r\n\t\t\t<span class=\"nl\">\"problemMatcher\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[],<\/span>\r\n\t\t<span class=\"p\">},<\/span>\r\n\t\t<span class=\"p\">{<\/span>\r\n\t\t\t<span class=\"nl\">\"label\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"rust: cargo compete new\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"cargo\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"command\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"compete\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"args\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n\t\t\t\t<span class=\"s2\">\"new\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t<span class=\"s2\">\"${input:contest}\"<\/span>\r\n\t\t\t<span class=\"p\">]<\/span>\r\n\t\t<span class=\"p\">},<\/span>\r\n\t\t<span class=\"p\">{<\/span>\r\n\t\t\t<span class=\"nl\">\"label\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"rust: cargo member include\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"cargo\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"command\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"member\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"args\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n\t\t\t\t<span class=\"s2\">\"include\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t<span class=\"s2\">\"${input:contest}\"<\/span>\r\n\t\t\t<span class=\"p\">]<\/span>\r\n\t\t<span class=\"p\">},<\/span>\r\n\t\t<span class=\"p\">{<\/span>\r\n\t\t\t<span class=\"nl\">\"label\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"new contest\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"dependsOrder\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"sequence\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"dependsOn\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n\t\t\t\t<span class=\"s2\">\"rust: cargo compete new\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t<span class=\"s2\">\"rust: cargo member include\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"p\">],<\/span>\r\n\t\t\t<span class=\"nl\">\"presentation\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n\t\t\t\t<span class=\"nl\">\"echo\"<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t<span class=\"nl\">\"reveal\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"silent\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t<span class=\"nl\">\"focus\"<\/span><span class=\"p\">:<\/span> <span class=\"kc\">false<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t<span class=\"nl\">\"panel\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"shared\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t<span class=\"nl\">\"showReuseMessage\"<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n\t\t\t\t<span class=\"nl\">\"clear\"<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span>\r\n\t\t\t<span class=\"p\">},<\/span>\r\n\t\t\t<span class=\"nl\">\"problemMatcher\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[]<\/span>\r\n\t\t<span class=\"p\">}<\/span>\r\n\t<span class=\"p\">],<\/span>\r\n\t<span class=\"nl\">\"inputs\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\r\n\t\t<span class=\"p\">{<\/span>\r\n\t\t\t<span class=\"nl\">\"id\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"contest\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"description\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"contestID\"<\/span><span class=\"p\">,<\/span>\r\n\t\t\t<span class=\"nl\">\"type\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"promptString\"<\/span>\r\n\t\t<span class=\"p\">}<\/span>\r\n\t<span class=\"p\">]<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<span class=\"err\">```json:settings.json<\/span>\r\n<span class=\"p\">{<\/span>\r\n    <span class=\"nl\">\"[rust]\"<\/span><span class=\"p\">:<\/span> <span class=\"p\">{<\/span>\r\n        <span class=\"nl\">\"editor.formatOnSave\"<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"nl\">\"editor.formatOnPaste\"<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"nl\">\"editor.formatOnType\"<\/span><span class=\"p\">:<\/span> <span class=\"kc\">true<\/span><span class=\"p\">,<\/span>\r\n        <span class=\"nl\">\"editor.defaultFormatter\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"rust-lang.rust-analyzer\"<\/span><span class=\"p\">,<\/span>\r\n    <span class=\"p\">},<\/span>\r\n    <span class=\"nl\">\"rust-analyzer.check.command\"<\/span><span class=\"p\">:<\/span> <span class=\"s2\">\"clippy\"<\/span>\r\n<span class=\"p\">}<\/span>\r\n\r\n<\/code><\/pre>\n<p>Rust\u8a00\u8a9e\u4f7f\u7528\u6642\u306b\u4fdd\u5b58\u3001\u30da\u30fc\u30b9\u30c8\u3001\u30bf\u30a4\u30d7\u6642\u306bRustfmt\u3092\u4f7f\u7528\u3057\u3066\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3092\u884c\u3046\u3088\u3046\u306b\u3057\u3066\u307e\u3059\u3002<br \/>\n\u306a\u305c\u304b\u4fdd\u5b58\u6642\u306b\u3057\u304b\u30d5\u30a9\u30fc\u30de\u30c3\u30c8\u3055\u308c\u306a\u3044\u307f\u305f\u3044\u3067\u3057\u305f\u3002\u89e3\u6c7a\u65b9\u6cd5\u3092\u6a21\u7d22\u4e2d\u3067\u3059\u3002<br \/>\n\u307e\u305f\u3001clippy\u3068\u3044\u3046\u30ea\u30f3\u30bf\u30fc\u3092\u4f7f\u7528\u3057\u3066\u30b3\u30fc\u30c9\u3092\u9759\u7684\u89e3\u6790\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<h2>scripts\/test.py<\/h2>\n<p>\u30d5\u30a1\u30a4\u30eb\u306e\u7d76\u5bfe\u30d1\u30b9\u304b\u3089abc\u304barc\u304bagc\u304b\u30b3\u30f3\u30c6\u30b9\u30c8\u306e\u56de\u6570\u3001\u554f\u984c\u306e\u30a2\u30eb\u30d5\u30a1\u30d9\u30c3\u30c8\u3092\u53d6\u5f97\u3057\u3066\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u306b\u6e21\u3057\u3066\u3044\u307e\u3059\u3002<br \/>\n\u30c6\u30b9\u30c8\u3057\u305f.rs\u30d5\u30a1\u30a4\u30eb\u7528\u306blauch.json\u3092\u66f8\u304d\u63db\u3048\u308b\u51e6\u7406\u3082\u884c\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">import<\/span> <span class=\"n\">os<\/span><span class=\"p\">,<\/span><span class=\"n\">sys<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"n\">subprocess<\/span>\r\n<span class=\"kn\">from<\/span> <span class=\"n\">urllib.request<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">urlopen<\/span>\r\n\r\n<span class=\"k\">def<\/span> <span class=\"nf\">get_contest_id<\/span><span class=\"p\">(<\/span><span class=\"n\">path<\/span><span class=\"p\">)<\/span> <span class=\"o\">-&gt;<\/span> <span class=\"nb\">tuple<\/span><span class=\"p\">:<\/span>\r\n    <span class=\"n\">parsed_path<\/span> <span class=\"o\">=<\/span> <span class=\"n\">path<\/span><span class=\"p\">.<\/span><span class=\"nf\">split<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">\/<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"n\">contest_name<\/span> <span class=\"o\">=<\/span> <span class=\"n\">parsed_path<\/span><span class=\"p\">[<\/span><span class=\"mi\">3<\/span><span class=\"p\">][:<\/span><span class=\"mi\">3<\/span><span class=\"p\">]<\/span>\r\n    <span class=\"n\">contest_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">parsed_path<\/span><span class=\"p\">[<\/span><span class=\"mi\">3<\/span><span class=\"p\">][<\/span><span class=\"mi\">3<\/span><span class=\"p\">:]<\/span>\r\n    <span class=\"n\">problem_id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">parsed_path<\/span><span class=\"p\">[<\/span><span class=\"mi\">6<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span>\r\n    <span class=\"k\">return<\/span> <span class=\"n\">contest_name<\/span><span class=\"p\">,<\/span><span class=\"n\">contest_id<\/span><span class=\"p\">,<\/span><span class=\"n\">problem_id<\/span>\r\n\r\n<span class=\"k\">def<\/span> <span class=\"nf\">download_test<\/span><span class=\"p\">(<\/span><span class=\"n\">contest_name<\/span><span class=\"p\">,<\/span><span class=\"n\">contest_id<\/span><span class=\"p\">,<\/span><span class=\"n\">problem_id<\/span><span class=\"p\">):<\/span>\r\n    <span class=\"n\">url<\/span> <span class=\"o\">=<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">https:\/\/atcoder.jp\/contests\/{0}\/tasks\/{0}_{1}<\/span><span class=\"sh\">\"<\/span><span class=\"p\">.<\/span><span class=\"nf\">format<\/span><span class=\"p\">(<\/span><span class=\"n\">contest_id<\/span><span class=\"p\">,<\/span><span class=\"n\">problem_id<\/span><span class=\"p\">)<\/span>\r\n    <span class=\"c1\"># cp = subprocess.run(\"pwd\") \/workspaces\/atcoder_rust\r\n<\/span>    <span class=\"c1\"># cp = subprocess.run([\".\/bt.bash\",contest_name,contest_id,problem_id])\r\n<\/span>    <span class=\"n\">cp<\/span> <span class=\"o\">=<\/span> <span class=\"n\">subprocess<\/span><span class=\"p\">.<\/span><span class=\"nf\">run<\/span><span class=\"p\">([<\/span><span class=\"sh\">\"<\/span><span class=\"s\">scripts\/change_launch.bash<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">contest_name<\/span><span class=\"p\">,<\/span><span class=\"n\">contest_id<\/span><span class=\"p\">,<\/span><span class=\"n\">problem_id<\/span><span class=\"p\">])<\/span>\r\n    <span class=\"n\">cp<\/span> <span class=\"o\">=<\/span> <span class=\"n\">subprocess<\/span><span class=\"p\">.<\/span><span class=\"nf\">run<\/span><span class=\"p\">([<\/span><span class=\"sh\">\"<\/span><span class=\"s\">scripts\/bt.bash<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span><span class=\"n\">contest_name<\/span><span class=\"p\">,<\/span><span class=\"n\">contest_id<\/span><span class=\"p\">,<\/span><span class=\"n\">problem_id<\/span><span class=\"p\">])<\/span>\r\n\r\n<span class=\"n\">contest_name<\/span><span class=\"p\">,<\/span><span class=\"n\">contest_id<\/span><span class=\"p\">,<\/span><span class=\"n\">problem_id<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">get_contest_id<\/span><span class=\"p\">(<\/span><span class=\"n\">sys<\/span><span class=\"p\">.<\/span><span class=\"n\">argv<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span>\r\n<span class=\"nf\">download_test<\/span><span class=\"p\">(<\/span><span class=\"n\">contest_name<\/span><span class=\"p\">,<\/span><span class=\"n\">contest_id<\/span><span class=\"p\">,<\/span><span class=\"n\">problem_id<\/span><span class=\"p\">)<\/span>\r\n<\/code><\/pre>\n<h2>script\/bt.bash<\/h2>\n<p>\u30ea\u30dd\u30b8\u30c8\u30ea\u76f4\u4e0b\u306ebt.bash\u3068\u4f3c\u3066\u3044\u307e\u3059\u304cabc\u304b\u3001\u306a\u3069\u3092\u5f15\u6570\u3068\u3057\u3066\u53d7\u3051\u53d6\u308b\u3088\u3046\u306b\u5909\u66f4\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"c\">#!\/bin\/bash<\/span>\r\n<span class=\"nv\">contest<\/span><span class=\"o\">=<\/span><span class=\"nv\">$1<\/span>\r\n<span class=\"nv\">num<\/span><span class=\"o\">=<\/span><span class=\"nv\">$2<\/span>\r\n<span class=\"nv\">aplha<\/span><span class=\"o\">=<\/span><span class=\"nv\">$3<\/span>\r\n<span class=\"nb\">cd<\/span> \/workspaces\/atcoder_rust\/<span class=\"k\">${<\/span><span class=\"nv\">contest<\/span><span class=\"k\">}${<\/span><span class=\"nv\">num<\/span><span class=\"k\">}<\/span>\/src\/bin\/\r\ncargo build &amp; cargo compete t <span class=\"k\">${<\/span><span class=\"nv\">aplha<\/span><span class=\"k\">}<\/span>\r\n<\/code><\/pre>\n<p>devcontainer.json \u306b\u304a\u3044\u3066\u30b3\u30f3\u30c6\u30ca\u3092\u4f5c\u3063\u305f\u3042\u3068.devcontainer\u5185\u306epostCreateCommand.bash\u3092\u5b9f\u884c\u3057\u3066\u3044\u307e\u3059<\/p>\n<h1>\u6ce8\u610f\u70b9\u307e\u3068\u3081<\/h1>\n<p>\u30b3\u30de\u30f3\u30c9\u30e9\u30a4\u30f3\u304b\u3089\u30b9\u30af\u30ea\u30d7\u30c8\u3092\u4f7f\u3046\u3068\u304d\u306f<br \/>\nlaunch.json<br \/>\nbt.bash<br \/>\nsub.bash<br \/>\n\u306e\u4e09\u3064\u306e\u30d5\u30a1\u30a4\u30eb\u3092\u30b3\u30f3\u30c6\u30b9\u30c8\u3001\u30b3\u30f3\u30c6\u30b9\u30c8\u306e\u756a\u53f7\u3064\u307e\u308aabc\u3001arc\u3001agc\u3084\u305d\u306e\u56de\u6570\u3054\u3068\u306b\u66f8\u304d\u63db\u3048\u308b\u5fc5\u8981\u304c\u3042\u308b\u3053\u3068<\/p>\n<p>postCreateCommand.bash\u306f\u3059\u3067\u306b\u30b3\u30f3\u30c6\u30ca\u304c\u4f5c\u6210\u3055\u308c\u3066\u3044\u308b\u306a\u3089\u51e6\u7406\u304c\u3044\u3089\u306a\u3044\u306e\u3067\u4e2d\u65ad\u3059\u308b\u3053\u3068<\/p>\n<p>postCreateCommand.bash\u306f\u6539\u884c\u30b3\u30fc\u30c9\u3001\u6a29\u9650\u306e\u95a2\u4fc2\u3067\u5b9f\u884c\u3067\u304d\u306a\u3044\u3053\u3068\u304c\u3042\u308b\u305f\u3081\u3001\u9069\u5b9c\u76f4\u3059\u3053\u3068<\/p>\n<p>\u30d5\u30a9\u30eb\u30c0\u540d\u3092atcoder_rust\u304b\u3089\u66f8\u304d\u63db\u3048\u306a\u3044\u3053\u3068\u3002\u66f8\u304d\u63db\u3048\u308b\u5834\u5408\u306fscript\u4ee5\u4e0b\u306e\u30d1\u30b9\u3092\u66f8\u304d\u5909\u3048\u308b\u3002<\/p>\n<h1>\u3042\u3063\u305f\u3089\u4fbf\u5229\u305d\u3046\u306a\u30c4\u30fc\u30eb<\/h1>\n<h3>github copilot<\/h3>\n<p>\u81ea\u52d5\u88dc\u5b8c\u30c4\u30fc\u30eb\u305d\u306e1<br \/>\n\u3053\u308c\u306f\u304a\u91d1\u3092\u6255\u308f\u306a\u3044\u3068\u4f7f\u3048\u306a\u3044\u305f\u3081\u8ab2\u91d1\u3057\u305f\u304f\u306a\u3044\u4eba\u306f\u4ee5\u4e0b\u4e8c\u3064\u3092\u63a8\u5968<\/p>\n<h3>Tabnine<\/h3>\n<p>\u6a5f\u68b0\u5b66\u7fd2\u3092\u7528\u3044\u305f\u81ea\u52d5\u88dc\u5b8c\u30c4\u30fc\u30eb\u305d\u306e2<br \/>\n\u91cd\u3044\u3067\u3059\u304c\u304b\u306a\u308a\u4fbf\u5229\u3067\u3059<br \/>\npro\u306b\u3059\u308b\u3068\u8efd\u304f\u306a\u308b\u3089\u3057\u3044<\/p>\n<h3>Kite<\/h3>\n<p>\u6a5f\u68b0\u5b66\u7fd2\u3092\u7528\u3044\u305f\u81ea\u52d5\u88dc\u5b8c\u30c4\u30fc\u30eb\u305d\u306e3<br \/>\nengin\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u3066\u305d\u3061\u3089\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u304b\u3089vscode-plugin\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u3068\u4f7f\u3048\u308b\u3088\u3046\u306b\u306a\u308b\u3089\u3057\u3044<\/p>\n<h1>\u4eca\u5f8c\u306e\u6539\u5584\u70b9\u3001\u8ffd\u52a0\u3057\u305f\u3044\u6a5f\u80fd<\/h1>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u74b0\u5883\u69cb\u7bc9\u3092\u5b8c\u5168\u306b\u81ea\u52d5\u5316\u3059\u308b<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u30b0\u30e9\u30d5\u306e\u53ef\u8996\u5316<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u30b5\u30f3\u30d7\u30eb\u306e\u81ea\u52d5\u751f\u6210<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>cargo equip\u306a\u3069\u3067\u5916\u90e8\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u7528\u3057\u3084\u3059\u304f\u3059\u308b<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\u30b7\u30a7\u30eb\u30b9\u30af\u30ea\u30d7\u30c8\u3067\u30a8\u30e9\u30fc\u304c\u8d77\u3053\u3063\u305f\u3089\u30e6\u30fc\u30b6\u30fc\u306b\u554f\u984c\u3092\u901a\u77e5<\/ol>\n<h1>\u6700\u5f8c\u306b<\/h1>\n<p>\u4eca\u5f8c\u306fcodeforces\u3084yukicoder\u306b\u5bfe\u5fdc\u3057\u305f\u74b0\u5883\u3082\u4f5c\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u3002<\/p>\n<p>Docker\u306b\u5f37\u3044\u65b9\u3084Rust\u306b\u8a73\u3057\u3044\u65b9\u306a\u3069\u306f\u6539\u5584\u70b9\u3084\u3055\u3089\u306a\u308b\u81ea\u52d5\u5316\u3067\u304d\u308b\u70b9\u304c\u3042\u308a\u307e\u3057\u305f\u3089\u30d7\u30eb\u30ea\u30af\u3092\u3044\u305f\u3060\u3051\u308b\u3068\u5b09\u3057\u3044\u3067\u3059\u3002\u554f\u984c\u70b9\u304c\u3042\u308a\u307e\u3057\u305f\u3089\u30b3\u30e1\u30f3\u30c8\u3084github\u306eissue\u306b\u304a\u9858\u3044\u3057\u307e\u3059\u3002\u6709\u5fd7\u3067\u96c6\u307e\u3063\u3066\u4fbf\u5229\u306a\u74b0\u5883\u69cb\u7bc9\u304c\u3067\u304d\u305f\u3089\u3044\u3044\u3067\u3059\u306d\u3002<\/p>\n<h1>\u53c2\u8003\u30fb\u95a2\u9023\u8a18\u4e8b<\/h1>\n<p>https:\/\/qiita.com\/qryxip\/items\/bff57848ac9310d27f1a<br \/>\nhttps:\/\/magicode.io\/shunnya0715\/articles\/9734ba4922894b329a756b6f3592e8ed<br \/>\nhttps:\/\/qiita.com\/qryxip\/items\/b945c0adbd62ce5f1f3d<br \/>\nhttps:\/\/qiita.com\/okaponta_\/items\/7e82de5d1f78f547fe4b<br \/>\nhttps:\/\/zenn.dev\/23prime\/articles\/74cda5a096a3b3<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u59cb\u3081\u306b \u30de\u30b7\u30f3\u306b\u3088\u308b\u74b0\u5883\u306e\u9055\u3044\u3067\u74b0\u5883\u69cb\u7bc9\u304c\u3067\u304d\u306a\u3044\u3068\u3044\u3046\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u305f\u3081\u3001Rust\u3067AtCoder\u306b\u53d6\u308a\u7d44\u3080 [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-44911","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>- Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:description\" content=\"\u59cb\u3081\u306b \u30de\u30b7\u30f3\u306b\u3088\u308b\u74b0\u5883\u306e\u9055\u3044\u3067\u74b0\u5883\u69cb\u7bc9\u304c\u3067\u304d\u306a\u3044\u3068\u3044\u3046\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u305f\u3081\u3001Rust\u3067AtCoder\u306b\u53d6\u308a\u7d44\u3080 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-12T02:54:17+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T18:31:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5b7837434c4406cea6d6\/21-0.png\" \/>\n<meta name=\"author\" content=\"\u6e05, \u5b87\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6e05, \u5b87\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/\",\"name\":\"- Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2022-11-12T02:54:17+00:00\",\"dateModified\":\"2024-04-29T18:31:43+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e\",\"name\":\"\u6e05, \u5b87\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u5b87\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyu\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<meta property=\"og:video\" content=\"https:\/\/www.youtube.com\/embed\/lZD1MIHwMBY\" \/>\n<meta property=\"og:video:type\" content=\"text\/html\" \/>\n<meta property=\"og:video:duration\" content=\"14779\" \/>\n<meta property=\"og:video:width\" content=\"480\" \/>\n<meta property=\"og:video:height\" content=\"270\" \/>\n<meta property=\"ya:ovs:adult\" content=\"false\" \/>\n<meta property=\"ya:ovs:upload_date\" content=\"2022-11-12T02:54:17+00:00\" \/>\n<meta property=\"ya:ovs:allow_embed\" content=\"true\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"- Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/","og_locale":"zh_CN","og_type":"article","og_description":"\u59cb\u3081\u306b \u30de\u30b7\u30f3\u306b\u3088\u308b\u74b0\u5883\u306e\u9055\u3044\u3067\u74b0\u5883\u69cb\u7bc9\u304c\u3067\u304d\u306a\u3044\u3068\u3044\u3046\u554f\u984c\u3092\u89e3\u6c7a\u3059\u308b\u305f\u3081\u3001Rust\u3067AtCoder\u306b\u53d6\u308a\u7d44\u3080 [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2022-11-12T02:54:17+00:00","article_modified_time":"2024-04-29T18:31:43+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d5b7837434c4406cea6d6\/21-0.png"}],"author":"\u6e05, \u5b87","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u5b87","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"5 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/","name":"- Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2022-11-12T02:54:17+00:00","dateModified":"2024-04-29T18:31:43+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/"]}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e","name":"\u6e05, \u5b87","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g","caption":"\u6e05, \u5b87"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyu\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/44911-2\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]},"og_video":"https:\/\/www.youtube.com\/embed\/lZD1MIHwMBY","og_video_type":"text\/html","og_video_duration":"14779","og_video_width":"480","og_video_height":"270","ya_ovs_adult":"false","ya_ovs_upload_date":"2022-11-12T02:54:17+00:00","ya_ovs_allow_embed":"true"},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/44911","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=44911"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/44911\/revisions"}],"predecessor-version":[{"id":89147,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/44911\/revisions\/89147"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=44911"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=44911"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=44911"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}