2017/08/09 ~ 2017/08/11
shell script (bash) の配列
bashには配列というものが存在しないらしい.
stackoverflow.com
が,200から1000まで200ずつ増やした数字をループの中で作りたい状況に遭遇した.
seqコマンドでやりたいことができた.
HIDDEN_UNITS=$(seq 200 200 1000) for hidden_unit in $HIDDEN_UNITS; do python train.py --hidden $hidden_unit done
これでパラメータを変更しながら実験する作業を自動化できる.
A-un Breathing
カッコの対応が取れているかを判定する問題と同じ.
bool wrongを初期値なしで初期化してWAを大量にもらってハマっていた.
bool wrongの初期値がtrueになる場合とfalseになる場合がある?
stackでもできるはずだけどREをいただいてしまう.なぜ?
http://jag2016-domestic.contest.atcoder.jp/submissions/1501888
//#define _GRIBCXX_DEBUG #include <bits/stdc++.h> # define rep(i, n) for (int i = 0; i < (int)(n); i++) using namespace std; int main() { int n; cin >> n; int cnt = 0; bool wrong = false; // 初期値はtrueなことがある string s; rep (i, n) { cin >> s; if (s == "A") { cnt++; } else if (s == "Un") { if (cnt > 0) { cnt--; } else { wrong = true; } } } if (wrong || cnt > 0) { cout << "NO" << endl; } else { cout << "YES" << endl; } return 0; }
Curry Making
はじめはカレーの濃度はCよりも低い.
Cよりも濃度が高くなるようにルーを追加し,
そのあとで水を加えれば良い.
そのため,水はルウの個数と切り離して考えることができる.
また,ルウは必ず整数個であることが保証されている.
つまり,ルウの個数を1から適当に大きな数まですべて試せばよい.
//#define _GRIBCXX_DEBUG #include <bits/stdc++.h> # define rep(i, n) for (int i = 0; i < (int)(n); i++) using namespace std; int main() { int r_0, w_0, c, r; while(cin >> r_0 >> w_0 >> c >> r, r_0) { for (int x=0; x<1001001001; x++) { if (c <= (double)(r_0+x*r)/w_0){ cout << x << endl; break; } } } return 0; }