・アルゴ式には、Webエディタが存在するが、せっかくなので環境構築を行うことにする。
・C++の方が競技プログラミング的には主流な気がするので、C++にする
・主に環境構築を行った
・macOSに入っていたgppはclangらしく、bits/stdc++.hが使用できないので、brew install gppをした後、ln -fsでシンボリックリンクを貼った
・毎回テンプレートを書くのがめんどくさいので、VSCodeのsnippet機能を使用した。「s-template」でテンプレが呼べるように。
ついでにgitも面倒になってきたので、.zprofileでgit関連のコマンドのaliasを設定
・文字列Sのn番目の文字はS[n]で取得できる
・もろもろ面倒になってきたので、zshに関数cpprを作成。以下の用な感じ
function cppr () {
gpp $1 && ./a.out
}
・ついでに上記のコード展開CSSも追加しておいた。
・文字列入力を学ぶ、というか思い出す。 https://qiita.com/MasahiroBW/items/3f56b22a079cd3272cd3
・ややこしくなってきた。ラムダ式と畳み込みは以下の通り
accumulate(A.begin(), A.end(), 0, [](int a, int b){return (a + b);})
・だるくてやってられないので、snippetを追加
{
"Template": {
"prefix": "s-template",
"body": "#include <bits/stdc++.h> \nusing namespace std;\n\nint main() { \n $1 \n}"
},
"Intake": {
"prefix": "s-intake",
"body": "int N;\ncin >> N;\nvector<int> A(N);\nfor(int i = 0; i < N; i ++) {\n cin >> A[i];\n}\n"
}
}
・我の強すぎるコード
#include <bits/stdc++.h>
using namespace std;
int main() {
int N;
cin >> N;
vector<int> A(N);
for(int i = 0; i < N; i ++) {
cin >> A[i];
}
string emp = "";
cout << accumulate(A.begin(), A.end(), emp,
[](string a, int b) -> string { return a + to_string(b % 10) + "\n";}) << endl;
}
・自分の環境とINFINITYの挙動が違ったため敗北