Volume 0 / 0027->0029
Problem 0027 : What day is today?
#include <iostream> #include <string> using namespace std; int doy( int m, int d ) { int m_table[13] = { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; int sum = 0; for( int i=1; i<m; i++ ) sum += m_table[i]; sum += d; return sum; } int main(void) { string day[7] = { "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "Monday", "Tuesday" }; int m, d; while( cin >> m >> d, m != 0 ) cout << day[doy(m,d)%7] << endl; return 0; }
Problem 0028 : Mode Value
#include <iostream> #include <string> using namespace std; int main(void) { int num[101] = {0}; int input; while( cin >> input ){ num[input]++; } int max = 0; for( int i=1; i<=100; i++ ) if( max < num[i] ) max = num[i]; for( int i=1; i<=100; i++ ) if( max == num[i] ) cout << i << endl; return 0; }
Problem 0029 : English Sentence
初めてmap使った。
#include <iostream> #include <string> #include <map> using namespace std; int main(void) { map<string,int> s; map<string,int>::iterator p; string str; int max_l = 0; string max_l_str; while( cin >> str ){ if( max_l < str.size() ){ max_l = str.size(); max_l_str = str; } p = s.find(str); if( p == s.end() ) s.insert(pair<string,int>(str,1)); else s[str]++; } int max_cnt = 0; string max_cnt_str; for( p = s.begin(); p != s.end(); p++ ){ if( max_cnt < (*p).second ){ max_cnt = (*p).second; max_cnt_str = (*p).first; } } cout << max_cnt_str << " " << max_l_str << endl; return 0; }