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;
}