- 319 名前:315 mailto:sage [2007/12/14(金) 22:45:28 ]
- 連続書き込みすいません。
Inv 2001 R1 の 250 点の問題を解いてみた。 C++ まだちゃんとわかってないけど、もっとこうしたほうが良いとかありますか? lass HowEasy { public: int calcPoints( int word_len, int words ) { if ( words == 0 ) { return 250; } int average = word_len / words; if ( average <= 3 ) { return 250; } if ( average <= 5 ) { return 500; } return 1000; } bool is_word( string word ) { for ( int i = 0; i < word.size(); i++ ) { if ( !( word[ i ] <= 'z' && word[ i ] >= 'a' ) && !( word[ i ] <= 'Z' && word[ i ] >= 'A' ) ) { return false; } } return true; } int pointVal( string statement ) { stringstream ss; string w; int words = 0; int word_len = 0; ss << statement; while ( ss >> w ) { if ( w.size() > 0 && w[ w.size() - 1 ] == '.' ) { w = w.substr( 0, w.size() - 1 ); } if ( is_word( w ) && w.size() > 0 ) { words++; word_len += w.size(); } } cout << word_len << " " << words; return calcPoints( word_len, words ); } };
|

|