PKU 2712 Netiquette

http://poj.org/problem?id=2712
与えられた文字列が変なルールに引っかかっているかそうでないかを判定しろというような問題。

やるだけ。
一発でACできたので満足。

bool ispunc(char c){
  return !(isdigit(c) || isalpha(c) || c==' ') && c!='"';
}

main(){
  string in;
  while(getline(cin,in),in!="#"){
    bool ok=true;
    rep(i,SZ(in)-1){
      if(isupper(in[i]) && isupper(in[i+1]))ok=false;
      if(ispunc(in[i]) && ispunc(in[i+1]))ok=false;
    }

    rep(i,SZ(in)-1){
      if(isdigit(in[i]) && isalpha(in[i+1]) ||
         isdigit(in[i+1]) && isalpha(in[i]))ok=false;
    }

    rep(i,SZ(in))
      if((i==0 || in[i-1]==' ') && (i==SZ(in)-1 || in[i+1]==' ') &&
         (toupper(in[i])!='A' && toupper(in[i])!='I'))ok=false;
    
    if(ok)cout<<"OK"<<endl;
    else cout<<"suspicious"<<endl;
  }
}