読者です 読者をやめる 読者になる 読者になる

るくすの日記 ~ Out_Of_Range ~

主にプログラミング関係

SRM 537 Div2

250: KingXNewBaby

やるだけ

const char vow[] = {'a', 'e', 'i', 'o','u'};
class KingXNewBaby {
public:
  string isValid(string name) {
    int ex[100];
    memset(ex,0,sizeof(ex));
    if(name.size() == 8)
      rep(i,name.size()) ex[name[i] - 'a']++;
    int c = 0;
    rep(i,5)
      c += ex[vow[i] - 'a'];
    if(c != 2) return "NO";
    bool two = false;
    rep(i,5){
      if(ex[vow[i] - 'a'] == 2){
	two = true;
	break;
      }
    }
    if(two) return "YES";           
    return "NO";
  }

};

500: KingXNewCurrency

(1,0) (0,1)の発想が思い浮かばなかった...

n次元になる

class KingXNewCurrency {
public:
  int howMany(int A, int B, int X) {
    int res = 0;
    if(A % X == 0 && B % X == 0) return -1;    
    for(int Y = 1; Y <= 200; Y++){
      bool okA = false,okB = false;
      for(int p = 0; A - X * p >= 0; p++)
	if((A - X * p) % Y == 0) okA = true;
      for(int p = 0; B - X * p >= 0; p++)
	if((B - X * p) % Y == 0) okB = true;
      if(okA && okB)  res++;
    }
    return res;
  }

};