入力を受け取る

参考

公式サイト: https://algo-method.com/courses/2

環境構築

・アルゴ式には、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の挙動が違ったため敗北