Indeedなう予選に参加。WA無くまぁまぁ順調に完答できました。
http://indeednow-quala.contest.atcoder.jp/tasks/indeednow_2015_quala_1
http://indeednow-quala.contest.atcoder.jp/tasks/indeednow_2015_quala_2
A - 掛け算の筆算
2つの整数A,Bが与えられる。
これらを筆算で掛け算する場合、1ケタの掛算を何回行うかを答えよ。
両者の桁数の積を答えればよい。
地道に整数を10で割って桁数を求めても良いが、単にstring型で入力を受けて文字列長で判定する方が楽。
void solve() { int i,j,k,l,r,x,y; string s,t; cin>>s>>t; cout<<s.size()*t.size()<<endl; }
B - Indeedなう!
文字列Sが与えられるので、"indeednow"のアナグラムかどうかを答えよ。
"indeednow"をソートしたものとSをソートしたものが等しいか比較すると楽。
void solve() { int i,j,k,l,r,x,y; string s,t; int N; t="indeednow"; sort(t.begin(),t.end()); cin>>N; while(N--) { cin>>s; sort(s.begin(),s.end()); if(s==t) cout<<"YES"<<endl; else cout<<"NO"<<endl; } }
まとめ
元々簡単な問題ではあるけど、考え方次第で解き方が楽になるね。