31日目: Beginner 47
31日目(2019/9/20)
AtCoder Beginner Contest 047
解けた問題
A:キャンディーと2人の子供 / Fighting over Candies
a == b+c || b == a+c || c == a+b
で判定しました。もっと上手な判定方法あるかな?
B:すぬけ君の塗り絵 2 イージー / Snuke's Coloring 2 (ABC Edit)
W,Hの最大が100だったので、最大100x100の盤を作成して、条件が出るたびに更新する手法にしました。あんまりスマートではないと思うけど、多分ACできるかなって思いながらコーディングしました。
// C++のテンプレート #include <iostream> #include <string> #include <algorithm> #include <vector> using namespace std; int main(void){ int W,H,N; cin >> W >> H >> N; vector<vector<bool>> board(H,vector<bool>(W)); int x,y,a; for(int iter=0;iter<N;iter++){ cin >> x >> y >> a; switch(a){ case 1: for(int i=0;i<H;i++){ for(int j=0;j<x;j++){ board[i][j] = true; } } break; case 2: for(int i=0;i<H;i++){ for(int j=x;j<W;j++){ board[i][j] = true; } } break; case 3: for(int i=0;i<y;i++){ for(int j=0;j<W;j++) board[i][j] = true; } break; case 4: for(int i=y;i<H;i++){ for(int j=0;j<W;j++){ board[i][j] = true; } } } } int count = 0; for(int i=0;i<H;i++){ for(int j=0;j<W;j++) if(!board[i][j]) count++; } cout << count << endl; }
タスクがたくさんあってちょっとまずいので、今日も2問だけでお茶濁す感じで…(しっかり取り組まないと)