SRM160〜163 Div.2 Easy
今日は昆布で解きまくってきました。
めんどくさいので問題名とコードだけ。
Substitute
class Substitute { public: int getValue(string key, string code) { string num = ""; string tmp; for (int i=0; i<code.length(); i++) { for (int j=0; j<key.length(); j++) { if (key[j] == code[i]) { stringstream ss; j++; if (j == 10) j = 0; ss << j; if (num == "" || num == "0") { ss >> num; } else { ss >> tmp; num += tmp; } break; } } } stringstream ss; ss << num; int res; ss >> res; return res; } };
CardCount
class CardCount { public: vector <string> dealHands(int numPlayers, string deck) { vector <string> deal(numPlayers, ""); int apper = (int)(deck.length()/numPlayers); if (deck.length() >= numPlayers) { for (int i=0; i<deck.length(); i++) { if (i+1 > apper*numPlayers) break; deal[i%numPlayers] += deck[i]; } } return deal; } };
LCMRange
class LCMRange { public: int calc_gcj(int a, int b) { int A=0, B=0; if (a == max(a,b)) { A = a; B = b; } else { A = b; B = a; } if (A == B) return A; else return calc_gcj(B,A-B); return -1; } int lcm(int first, int last) { vector <int> num; for (int i=first; i<=last; i++) { num.push_back(i); } for (int i=0; i<num.size(); i++) { for (int j=num.size()-1; j>i; j--) { // if (num[j]%num[i] == 0) num[j] /= num[i]; int g = calc_gcj(num[i], num[j]); if (g != -1) num[j] /= g; } } int res = 1; for (int i=0; i<num.size(); i++) res *= num[i]; return res; } };
Inchworm
class Inchworm { public: int lunchtime(int branch, int rest, int leaf) { vector <int> leaves; int res = 0; for (int i=0; i<=branch; i+=leaf) { leaves.push_back(i); } for (int j=0; j<leaves.size(); j++) { if (leaves[j]%rest==0) { res++; } } return res; } };
今はどんなゲームをつくるか・・・そこにつきます。