スクリーンショット_2019-04-04_23

文系ギャルが0から始める競技プログラミング#8

Intro

この記事は不定期連載です。
↓最初の一本はこちら↓
文系ギャルが0から始める競技プログラミング#0

↓直前の記事はこちら↓
文系ギャルが0から始める競技プログラミング#7

・AtCoder Beginners Selection


引き続き問題ばしばし解いていきます。
ある程度理解して解けるようになってきたっぽいので、
やっと手を付けることにしました!

順番に解いていきます。

・ABC086A

問題文
シカのAtCoDeerくんは二つの正整数a,bを見つけました。
aとbの偶数奇数判定してください。

制約
1≤a,b≤10000
a,bは整数

入力
入力は以下の形式で標準入力から与えられる。
a b

出力
積が奇数なら Odd と、 偶数なら Even と出力せよ。
― ABC086A - Product

シカのAtCoDeerくんw
ていうかってなに!??!??(これでも天才です)

ぐぐったら掛け算の答えのことですね、それなら簡単です。

掛けて2で割り切れたら(あまりが0だったら)"Even"、そうじゃなかったら"Odd”出力して優勝です。

#include <iostream>
using namespace std;
int main()
{
   int a,b;
   cin >> a >> b;
   if((a*b) % 2 == 0){
       cout << "Even" << endl;
   }else{
       cout << "Odd" << endl;
   }
   
   return 0;
}

天才なのでサクッといけました。
いきましょう

・ABC081A


問題文
すぬけ君は1,2,3の番号がついた3つのマスからなるマス目を持っています。 各マスには 0 か 1 が書かれており、マスiにはsiが書かれています。
すぬけ君は1が書かれたマスにビー玉を置きます。 ビー玉が置かれるマスがいくつあるか求めてください。

制約
s1,s2,s3は1あるいは0

入力
入力は以下の形式で標準入力から与えられる。
s1s2s3

出力
答えを出力せよ。
― ABC081A - Placing Marbles

すぬけくんの謎ムーブを、まずintまとめて持ってくることにしました。


   int S;
   cin >> S;

幸い3つしかないので、配列で1,10,100とおいて、2で割れるかどうか調べます!
int型なので小数点以下が切り捨てられて、判別がつくはずです…。


割れなかったら1入ってるので、それの数を数えて出力します。


   int a[3] = {1 ,10, 100};
   int ans = 0;
   int i;
   for(i=0;i<3;i++){
   if((S/a[i]) % 2 != 0){
       ans ++;
   }
   }
   
   cout << ans << endl;


天才なのでACでした。サクッと優勝確定です。
もっといい方法があったら、Twitterコメントで教えてください。
(DMも全開放しています。Twitterの先輩リストが100人超えました!感謝!!!!)

#include <iostream>
using namespace std;
int main()
{
   int S;
   cin >> S;
   
   int a[3] = {1 ,10, 100};
   int ans = 0;
   int i;
   for(i=0;i<3;i++){
   if((S/a[i]) % 2 != 0){
       ans ++;
   }
   }
   
   cout << ans << endl;
   return 0;
}

B問題にも手を付けたのですが、それはまた次回

↑喜びのツイート

Outro


#9に続く!(不定期連載です。)

これは成功と挫折を繰り返し、
タピオカ片手に難問を解く、
ギャルプログラマが生まれるまでの物語である…。

この記事が気に入ったらサポートをしてみませんか?