しがない元高専生の競プロ日記

AtCoderとかいろいろ解いてく

面白かったなろう一覧

tt-conpetitive.hatenablog.com

これの該当部分切り抜き

連載中

世界最速のレベルアップ ~無能スキル【ダンジョン内転移】が覚醒した結果、俺だけダンジョンのルールに縛られず最強になった~

https://ncode.syosetu.com/n3976gk/

万能「村づくり」チートでお手軽スローライフ ~村ですが何か?~

https://ncode.syosetu.com/n0637gi/

サクッと?読める系(100万字以内)

侯爵令嬢の嗜み

https://ncode.syosetu.com/n8390n/

最強剣聖の魔法修行 ~レベル99のステータスを保ったままレベル1からやり直す~

https://ncode.syosetu.com/n6811eu/

高1を12回ループしたクラスメート達が賢者モードになっている件

https://ncode.syosetu.com/n0366fw/

聖女のはずが、どうやら乗っ取られました

https://ncode.syosetu.com/n0469ft/

乙女ゲームの破滅フラグしかない悪役令嬢に転生してしまった…

https://ncode.syosetu.com/n5040ce/

読み終わるまでに無限に時間が溶ける系

本好きの下剋上 ~司書になるためには手段を選んでいられません~

https://ncode.syosetu.com/n4830bu/

今まで読んだ中で1番。アニメ化されるらしいけど納得の面白さ。

冒険者になりたいと都に出て行った娘がSランクになってた

https://ncode.syosetu.com/n5947eg/

個人的にめっちゃ好き。

ノーライフ・ライフ

https://ncode.syosetu.com/n8390n/

魔法を科学する系だけど化学さっぱりで楽しめきれなかった感。

ラスト読み終わってからの喪失感すごいので読んでほしい。

無職転生 - 異世界行ったら本気だす -

https://ncode.syosetu.com/n9669bk/

デスマーチからはじまる異世界狂想曲( web版 )

https://ncode.syosetu.com/n9902bn/

1/5更新

読んでる途中。結構読み応えあり

読んだ。読み応えアリ。主人公が一生ヒロインたちに手を出さないのが逆に好感。

剣士を目指して入学したのに魔法適性9999なんですけど!? https://ncode.syosetu.com/n1583dj/ 微百合てぇてぇ。最後サクッとラスボス倒してそのまま終わったのは残念。 でも好き。

終わり

おススメなろう小説あったら教えてください。

【Kindle Paper Whiteを買って小説家になろうのなろう小説を快適に読めるようにするまで】

Kindle Paper Whiteを買った

夜寝る前の眠気を待つ間になろうを読むことが多くなったので買ってみた。

amazon black friday最高!

オプションはこんな感じ。

夜寝るときしか読まないしiPad proもあるので控えめな装備

f:id:honehaniwa:20201130190539p:plain
スペック

www.amazon.co.jp

セットでカバーとフィルムも揃えた。これらコミコミでお値段17,010円。まあまあする

f:id:honehaniwa:20201130190745p:plain

さて、なろうを読もう

と思いKindle Paper White 内のブラウザからなろうのホームページに飛ぶ。

するとこんな感じになった。

とても読めたものじゃないブラウザなろう

一応ブラウザの設定で JavaScript をオフにする、画像の表示をオフ にすると少しマシになるがレイアウトは相変わらずぶっ壊れたPC版なのであまり効果なし。

結論

bibouroku.net

こちらのサイトを見つけた。この中で紹介されているEpub Pressを使うのが一番簡単で良さそうという結論になった。

chrome.google.com

こちらはGoogle Chromeで使える拡張機能と呼ばれるものでブラウザでChromeを使っている人は上のURLからChromeに追加を押すだけで導入できます。

EdgeやSafariFirefoxその他を使ってる人はChromeのインストールから始めてください。

その後にセットアップがあるので上の記事を参考に行ってください。すぐできます。

使い方も上の記事に詳しく乗っているので丸投げします。ありがとう。

f:id:honehaniwa:20201130193416p:plain
こんな感じにタブを開きまくって

f:id:honehaniwa:20201130193510p:plain
良さげな感じにタイトル付けて

f:id:honehaniwa:20201130193722p:plain
や っ た ぜ 

これでkindleでなろうを読むことができるようになりました。

FAQ

Q 何故章分けしているのか

A 所詮WEBページをKindleで見やすくするためのものなのでページが多すぎると送れなくなります。

できて40話くらいしかまとめられません(体験談)

Q ほかの方法はないの?

A こちらのGitHubリポジトリを見つけたのでこれでも出来そう(試してはいない)

github.com

nen5tare.com

章ごとに細かく分けるのがめんどくさかったりこういったIT系にアレルギーがない人とかはこっちの方がよさそう。

(一応IT系の人間なのにこっちを使わないのはどうなんだ)

Q いちいち更新があったら送るのがめんどくさい

A 諦めてください。完結済を読むのには向いてますが更新系を読むのには向いてないです。

ところで更新系って複数あると話が途中で分からなくなって脱落しませんか?

対処方法モトム

Q おススメのなろう教えて

A ちょっと前までは更新中のものも読んだりしてたが最近は完結済ランキングの上位を漁ったりする感じになってる。

面白かったのは

連載中

世界最速のレベルアップ ~無能スキル【ダンジョン内転移】が覚醒した結果、俺だけダンジョンのルールに縛られず最強になった~

https://ncode.syosetu.com/n3976gk/

万能「村づくり」チートでお手軽スローライフ ~村ですが何か?~

https://ncode.syosetu.com/n0637gi/

サクッと?読める系(100万字以内)

侯爵令嬢の嗜み

https://ncode.syosetu.com/n8390n/

最強剣聖の魔法修行 ~レベル99のステータスを保ったままレベル1からやり直す~

https://ncode.syosetu.com/n6811eu/

高1を12回ループしたクラスメート達が賢者モードになっている件

https://ncode.syosetu.com/n0366fw/

聖女のはずが、どうやら乗っ取られました

https://ncode.syosetu.com/n0469ft/

乙女ゲームの破滅フラグしかない悪役令嬢に転生してしまった…

https://ncode.syosetu.com/n5040ce/

読み終わるまでに無限に時間が溶ける系

本好きの下剋上 ~司書になるためには手段を選んでいられません~

https://ncode.syosetu.com/n4830bu/

今まで読んだ中で1番。アニメ化されるらしいけど納得の面白さ。

冒険者になりたいと都に出て行った娘がSランクになってた

https://ncode.syosetu.com/n5947eg/

個人的にめっちゃ好き。

ノーライフ・ライフ

https://ncode.syosetu.com/n8390n/

魔法を科学する系だけど化学さっぱりで楽しめきれなかった感。

ラスト読み終わってからの喪失感すごいので読んでほしい。

無職転生 - 異世界行ったら本気だす -

https://ncode.syosetu.com/n9669bk/

デスマーチからはじまる異世界狂想曲( web版 )

https://ncode.syosetu.com/n9902bn/

読んでる途中

結構ミーハーな感じが伺えるラインナップになってしまった

終わりに

おススメなろう小説あったら教えてください。

ABC133 C - Remainder Minimization 2019 解説

C - Remainder Minimization 2019

atcoder.jp

くじかつで死んだので戒めに書きます

問題

整数L Rが与えられるのでL≤i<j≤Rかつ(i×j)mod 2019の最小値を求める。

解法

L Rの間に2019の倍数がある場合、mod2019で0になることが確定する。

でも判定がめんどいのでR-Lが2019以上なら0で確定する。

それ以外の場合L Rのmod2019を取ってその間でi jを全探索すればよい。(mod 2019を取るのでL Rのmod2019を取っても結果は変わらず探索範囲が狭まる)

ソースコード

cdef:
  int l, r, ans=2020
l,r=map(int,input().split())
if r-l>=2019:
  print(0);exit()
l%=2019
r%=2019
if l>r:
  l,r=r,l
for i in range(l,r):
  for j in range(i+1,r+1):
    ans=min(ans,i*j%2019)
print(ans)

精進します...

AtCoder Library(ATL)をVisual Studioで使えるようにした

注: アホなことをしています。あと様々なバグに引っ掛かったわけではないのですべてを解決するブログではないです。あくまで備忘録として見てください。

AtCoder Library(ATL)

本日AtCoder Library(ATL)が公開されました。

atcoder.jp

私はVisual Studioを愛用しているのですが少しハマったので備忘録として残します。

公式のインストールガイド

配られているzipを解答してappendix.htmlを見ると出てくる。

C:\Program Files (x86)\Microsoft Visual Studio\2019(Community, Professional or Enterprise)\VC\Tools\MSVC(Some number, e.g. 14.27.29110)\include\atcoder\dsu.hpp となるように配置してください。

(一部抜粋)

ここまでブログ書いて気づいたんですが、全く別のことしてました...

私はC:\Users\hogehoge\source\repos\repo_name\repo_name\atcoder\dsu.hppに入れてました。

つまりプロジェクト直下に入れてたわけですね。

#include<bits/stdc++.h>も同じ方法で入れてたので流れでやってしまいました。

今読んでる人はちゃんとした場所に入れようね!

(あとリファレンスはちゃんと読みましょう)

もしやってしまったら

地獄が待ってます。

ATLで使用する#include<hogehoge>関連をすべて#include "hogehoge"にする必要があります。

要は自作ヘッダーファイルとして認識されるのでそうなるようincludeも変えないといけないんですね。

これをすると、ATLのライブラリを相互参照している部分まで全部変える必要があるのでクソめんどいです。(全部やった)

一応、F5でビルドしてWarningで死んだ部分まで定義に移動して脳死で変換すれば多少マシにはなる?

ここでビルド通って動いたら

おめでとう! 終わり!w

動かなかったら

__umul128(z, im, &x);で落ちたら

VS2017使ってたのに死にました。

諦めてVS2019インストールしたら直りました(は?)

"C2131: 式は定数に評価されませんでした"といって落ちた場合

internal_math.cppの該当部分を

// これを
for( long long a: {2, 7, 61}) {
    // hogehoge~
}

// こうする
long long v[3] = {2, 7, 61};
for (long long &a : v) {
    // ushitapunikia~
}

と自分は上手く行った。

その他

頑張ってください...

最後に

ACコード(ローカルでも実行確認済)

atcoder.jp

競技プログラマーに環境構築を求められると死にます(悲しい)

ARC級がすぐ来るのでATL使いこなせるようになりたい。

おまけ

Grow mapはいいぞ f:id:honehaniwa:20200908031930j:plain

AtCoder ABC173 A~D解説

A~Dなら1記事で許されるやろ!w

今回は解説はすべてCythonで書いてます(AtCoderのCyhonはPure python modeなのでPythonのコードのままでもACできるくらいにはとっかかりやすいものです)

C++でのACは自分のコンテスト中の提出履歴を見てもらえると同じ方針で書かれてると思います。

atcoder.jp

A - Payment

無限に1000円札持ってるの羨ましい...羨ましくない?

1000円札で払える分はすべて払った後に小銭の計算をすれば良さそう。

サンプルは合わせようね(2WA食らった)

cdef:
  int n
n = int(input())
print((1000-(n%1000))%1000)

atcoder.jp

B - Judge Status Summary

C++erは脳死map<string, int>でおK。 Pythonerはdictdefaultdictでやろう。

まあlist.count(string)があるんだけども

cdef:
  int n
  list s
n = int(input())
s = [input()for i in range(n)]
for c in ["AC", "WA", "TLE", "RE"]:
  print(c,'x',s.count(c))

C - H and V

マスは赤く塗ります

(これで少しハマった)

これはbit全探索なる頻出の全探索アルゴリズムです。 今回は少し応用が必要なので初めて触る人はけんちょんさんの記事を読んでから取り掛かるといいかも

drken1215.hatenablog.com

今回はこの{行, 列}を赤く塗るかor塗らないを各H,Wに対してみていくと2H+W 個の候補が発生します。

これを全探索します。

重実装タノシイ!

import copy
cdef:
  int h,w,k,cnt,ans=0
h,w,k=map(int,input().split())
s=[list(input())for i in range(h)]
for xbit in range(1<<h):
  for ybit in range(1<<w):
    cnt=0
    c = copy.deepcopy(s)
    for i in range(h):
      if xbit>>i&1:
        for j in range(w): c[i][j]='-'
    for i in range(w):
      if ybit>>i&1:
        for j in range(h): c[j][i]='-'
    for i in range(h): 
      cnt+=c[i].count('#')
    if cnt==k:
      ans+=1
print(ans)

atcoder.jp

D - Chat in a Circle

これは考察できるととても気持ちいいやつ

f:id:honehaniwa:20200706022442p:plain
問題文のやつ

これを見ながら考えるのが一番良さそう。

うーん、降順ソートで上から取る!はもちろんWA。

ではどうするか。

f:id:honehaniwa:20200706023443j:plain
iPad最高!一番好きな考察用紙です!

このように降順にソートしてから最初と2番目に入ってくるやつだけ条件分けして後は前から順番に2回づつ消化するとできそうですね!

サンプルを振り返ると2回使う部分で同じ数字が入ってきてカモフラージュされてるし中々いやらしい

cdef:
  long n, now=0, ans=0
  list a
n=int(input())
a=sorted(list(map(int,input().split())),reverse=True)
for i in range(n):
  if i==0:continue
  ans += a[now]
  if i%2==1:
    now+=1
print(ans)

intでオーバーフローするとREになるのね... atcoder.jp

いかがでしたか

E,Fはまたどこかで...

(こういう低難易度解説にいまいち需要があるのか分からんので嬉しい人は☆つけてくれたりすると生えたりします)

AtCoder水色に戻りました

水復帰しました

これまでHighest-100くらいまで食らったりしてたのでよく戻ってこれたなぁという感じです。

いつも色変直後に冷えるジンクス(?)があるので今後は起きないように備忘録です。

1. 精進をサボる

特に色変直後は満足感が先にきてしまい精進などという泥臭い方法をやめる傾向があります(自分だけかも)

touristでも10000問解いてるので1000問くらいしか解いてない自分はもっと解けというお話しなんですよね...

もう少しまとまった時間を取って1~2時間青diffと格闘する時間を毎日作るだけでも変わるだろうなぁと思いつつ何もやってないところがダメなんだよ!

Just Do It!

f:id:honehaniwa:20200706013816p:plain
Just Do It!

2. バイトで疲れたからetc...

tt-conpetitive.hatenablog.com

ご存じのとおり株式会社フューチャー様でプログラマーとしてバイトしてます。

ええ、コロナで授業が全部オンデマンド(動画配信)になったことをいいことに平日の学校行ってたであろう時間を大体バイトに捧げて課題に追われる生活をしています。

バイトでコーディングしたから実質精進!wはダメです。

なぜならその結果レートは下がっているので...

バイトをしたらその流れで精進をするのが流れ的に一番良さそう?(そのためには残業を減らして効率よく業務を進めろというお話になったり難しいね)

ブレイクスルー

f:id:honehaniwa:20200706013139p:plain
しーあるさん問題解きすぎ許して
こんな感じでCythonに興味がある(なおAtCoderではPure Python modeなのでPythonそのままの文法で書けてしまうが)のでCythonのLanguae Ownerを取りたい!となって精進を再開。

ついでにHHKBのProfessional type-sを買ったのでキーボード慣れもしたいのでA問虚無埋めを始めたらAtCoderの楽しさに目覚めてしまった。

そこから精進を少しづつ初めてったら最初の週で当たりABCセット(得意な実装寄りの問題)が出てそのまま青パフォゴールイン。

最後に

精進、しようね!

またAtCoder水色になった記事を投稿する羽目にならないように頑張ります。

青くなりたい!

AtCoder Jobsで受かったFUTURE社でバイト始めて2週間が経った

自己紹介

現在豊田高専の5年情報工学科に所属してます。

来年から豊橋にある某技科大に進学します。

高専3年のタイミングで運動部を辞めてコン部に入り、パソコン甲子園で競プロに目覚めました。

AtCoder水(応募時はHighest水の緑コーダーでした)

f:id:honehaniwa:20200311232717p:plain
激冷えしてるやんけ...

大学に進学するにあたってバイト探さねぇとな~~~~~と思ってました。

あと卒業研究で深層学習を使って自然言語処理っぽいことをしたりしてました。

https://twitter.com/TT_beginner/status/1234438002190868482

応募の経緯

jobs.atcoder.jp




こんなツイートを見つけました。

元々FUTURE社のバイトには興味あったのですが、応募ページに書いてある通り、この一文で諦めてました。

※遠隔地からのフルリモートワークのご希望につきましては、
Atcoder Aランク以上、著名学会への掲載、その他コンペティションでの
上位入賞経験等の特に優れた経験をお持ちの方に対し、
ご相談可とさせていただいております。

しかし、@shomu_matchさんのプロフを見ると水コーダー&愛知県住みというのを発見。

これはワンチャンあるか???と思いツイート。

空リプにもかかわらずツカモさんから秒でリプが付き、その後数分で応募->面談の予定決めまで決まってしまいました。

f:id:honehaniwa:20200311234020p:plain
深夜なのにこの爆速の進み具合

追記:

どうやら面接担当がパンクして青以上しかダメになったみたい。 人気すぎるやろ

面接->初勤務まで

面接はラボの先生の教員室のスペースを借りてGoogle Hangoutでリモート面接しました。

なにも準備せずノリで何とかなるかな~と思ってたらよくある志望理由とか聞かれて内心やべえええええええと思いながら何とか乗り切りました。

今までの開発経験や研究関連のことを話せるだけ話して面接終了。

色々興味あるので何でもやります!って言ってたらラボの先生に「何やりたいのか分からない人みたいになってるよ」と言われました...

反省。

面接結果

無事バイトとして雇ってもらえることに!やった~~~~~~~

勝因

研究をちゃんとやってた。B2の年齢で研究してて研究内容でゴリ押しできるところが高専生の強みだなぁと思ったり。

後はチーム決めてモノづくり、みたいな授業でコン部だからという理由でメインプログラマーに任命されてヒーヒー言った甲斐がありました。

勤務初日~一週間

自分が水コーダーということもあり、一度本社にきて一週間業務体験みたいな感じでやってみて良きところでリモートに切り替えましょうか、というお話になりました。

(コロナの関係で本当はもうちょい東京にいる予定ではあったんですけど1週間で終わらせる感じになりました)

唯一、残念ポイントだったのは宿泊費が出なかったことでした...

今までは本社に来る=日帰りという想定らしく、宿泊費を出すならインターンみたいな感じにできるけど給料が出ないということで自費で宿泊費を負担して東京勤務をすることに。悲しい。

ちなみに交通費はちゃんともらえました😚

初日は業務する用のノートPCのセッティングをしたり、社内用Googleアカウントの作成や人事の人とアルバイト登録の契約書を書いたりしました。

ハンコ忘れるとヤバいです

2日目以降はこれから入るチームの候補を説明してもらって感想を言っていって入るチームを決める->実際に入って業務開始という流れでした。

話している途中で学校のグループワークでJavaを使ったWebアプリケーション開発をやったことを思い出し、それを話したらそういう系のチームの所属になりました。

それからは環境構築でバトったり、ツカモさんに昼飯奢ってもらったり(ありがとうございました)、業務終了後に何故か東京でインターンしてた同級生と一緒に東京で勤務してる先輩の家でしゃぶしゃぶパーティーしたりしました。

本社勤務ではコロナでリモートになってるチーム内の人と通話でコミュニケーションが取れるか、や開発系の知識がどの程度あるのか(git使っていきなりmasterいじってpushしようとしたりしないか程度)を見ている気がしました。

(明確な基準は聞いてないのであくまで推測)

リモートワークになってから

基本はGoogleチャットでSlackみたいな感じにコミュニケーションを取りつつ定例会議で進捗報告~という感じです。

春休みなのとリモート初週なので多めに時間取って働いてます。移動時間0秒&13時開始が許されるのが最高すぎる。

競プロerはこういう内容をする(社外秘等あるのでざっくりですが)

前提として

業務としてはいろんな企業から「○○で困ってます。どうしたらいいですか?」という困り事に対して、その解決にアルゴリズムが必要そうなら提案し、お仕事を貰ったり最適化してワーイヤッターするお仕事です。

意外なのは、深層学習やディープラーニング系は業務プログラミングとしては最終手段として使われるそうです。

まず、要望としてはできるだけ100%の精度で動いて欲しい内容が来ます。

その時に学習過程がブラックボックス化されており、精度が完全に保証されない深層学習系より、単純なルールベースやソート等、動作が明確で後の仕様追加や変更も容易な手法を採用すべきだからです。

それでも無理そうな内容ではAIパワーに頼ろう!となって初めて深層学習使おうか、となります。

Jobsでのバイトはいきなり深層学習とかマラソンっぽいような最適化部分の前に、必要な基本的な処理の実装を担当することが多いと思います(Kaggleとかで強そうな成績出してたりするとデータ検証系にぶち込まれるかも)。

次にレート別の業務内容はこんな感じです。

茶~水くらい?(自分がやってる or やった内容)

現行のWebサービスのブラッシュアップとして落ちそうなテストケースをHackする(ある項目に大量の文字や特殊文字を打ち込んでエラーにさせる等)。

↑で見つけたテストケースとか、その他品質テストを自動化するプログラムを書きましょう。

最適化で作った内容をビジュアライザーでいい感じに表示しよう。

まだ仕事が来てないだけでメインの最適化の方も来るかも?

強そうな人がやる内容

学習モデルの構築やシステムの根幹の最適化部分(レートが低くてもマラソンそれなりにやってたりするとこっちになるかも)

Jobsバイトのいいところ

  • 自分の応募したバイトはバイトまとめ役がツカモさんになっているのでコミュニケーションが超楽。競プロerのことをよく分かってくれているので安心感がある
  • 現実世界のデータで色々やれるので動いてるワクワク感が全然違う。
  • AtCoderみたいな数字や謎の1e5文字の文字列ではなくちゃんとした店舗名だったりが入力されてビジュアライザーまで組まれてたりで開発もええやん!となる。競プロみのある内容なので尚更楽しい。
  • 就職とか考えるときに競プロはこんな感じで社会に役立つんだな~とか考えたり。
  • 社員さんも結構ユーモラス("情報系の人間")なので会話してて不都合等も無くて楽しい。
  • 社内競プロサークル的なのもあり、所属してる人のレートが監視されてます(いい事なのか?)

ざっとこんな感じ。

競プロサークルは大体人数は20人くらいで上位10+x人は青以上、水、緑、茶、灰もそれなりにいます(全員がJobsバイトerではないのでバイトとしての色の相関は分からず)。

リモートの問題点

  • 月1~2で面談で東京に行けるのですが、平日限定なので少し厳しい
  • 社外秘の情報を扱うので寮生活とかしてると結構注意しないといけない(自分が来年そうなので)
  • 回線が遅いと厳しい?(画面共有しながら電話したりするのが快適程度は速度が欲しい)。

こんな感じ。

会議用のマイクとかは配布されてるPCの内臓マイクで大丈夫そうなので買わなくてもよさそうです。

その他の問題

  • 週15hは働いてほしいそうなので編入後とかは忙しめの人だと時間的に厳しいかもしれない(ある程度は融通を利かせてくれるらしい)。
  • 休日働けない(正社員の人と共同で開発するためそれはそう)

最後に

実は編入する高専生をバイトerにするのは初めてのモデルケースらしいので高専生もやれるんやぞというのを示していきたい所存。

FUTUREのjobsバイトに受かりそうなアドバイスは、

  • やはり開発系をやってると嬉しいらしい
  • 研究でもそれなりに開発っぽいものをするので卒業研究は大きな実績作りのチャンス
  • Rust とかでイケイケ開発~というイメージよりは Java とかそれなりに読めて書ける感じの方がよいっぽい
  • 深層学習系は Python 、お隣の部署だと Go が主流らしい
  • ディープラーニング系はよほどできるマンではない限り厳しそうでマラソンマッチできる方が重宝されがち?
  • 東京近傍じゃなくてAtCoderレートが低くても交渉次第でなんとかなる!

という印象でした。

まだB1,2(高専4,5年)とかだし開発もしたことないけど受かりたい!なら

  • 競プロのレートを上げる(一番手っ取り早いかもだが開発系の経験がNULLだとリモートとかは厳しそう)
  • git、GitHubを使った開発(これは最低限経験してないと無理。集団開発でGitHub使わないは地獄なので)
  • 競プロ以外でも環境構築とかをしてみる(Python+chainerで深層学習できるようにしました!とかPATHを通す、が分かるとか実際にやってみないと分からないことは多そう)
  • Unityでも何でもいいからなんか作りてぇなぁで作品を作ってみる!コーディング力はAtCoderで鍛えてるので使うツールとかの仕様と格闘して検索力を上げればなんかできる!(はず)

とかなイメージです。研究で入った人間なので何とも言えないですが...

個人的には暇してる高専生4~5年生とか興味持って来てくれたらうれしいな~と思ったり。

とりあえず募集の文面見ただけでこんな感じになってる人はなんやかんやでいろんな縁があったりするので一度行動してみるといいと思います!

なんやかんやで5000文字くらい書いてたんですね...

どおりで今午前3時な訳だ。

最後にツカモさんのありがたいお言葉で締めたいと思います。ここまで見ていただき、ありがとうございました。

追記:ちゃんと会社の許可は取ってます👍