UVA 12554 – A Special “Happy Birthday” Song!!!

UVA 12554 – A Special “Happy Birthday” Song!!!

Problem Link: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3999

 

There are n people (excluding myself) in my 30th birthday party. They sing the traditional “happy birthday” song:
Happy birthday to you! Happy birthday to you! Happy birthday to Rujia! Happy birthday to you!!!
Since I love music, I want to hear something more interesting, not that everyone sings together. Ah yes, I want one person to sing one word! For example, there are three people: Mom, Dad, Girlfriend, I’d like them to sing like this:
Mom: Happy
Dad: birthday
Girlfriend: to
Mom: you
Dad: Happy
Girlfriend: birthday
Mom: to
Dad: you
Girlfriend: Happy
Mom: birthday
Dad: to
Girlfriend: Rujia
Mom: Happy
Dad: birthday
Girlfriend: to
Mom: you
Very nice, right? What if there are more than 16 people? That’s easy: repeat the song until everyone has sung at least once 🙂 Please, don’t stop in the middle of the song.

 
 

Input

There is only one test case. The first line contains a single integer n (1<=n<=100). Then each of the next n lines contains a capitalized name (i.e. one upper-case letter followed by zero or more lower-case letters). Each name contains at most 100 characters and do not have white-space characters inside.

  

Output

Output the song, formatted as above.

 

Sample Input

3
Mom
Dad
Girlfriend

 

Sample Output

Mom: Happy
Dad: birthday
Girlfriend: to
Mom: you
Dad: Happy
Girlfriend: birthday
Mom: to
Dad: you
Girlfriend: Happy
Mom: birthday
Dad: to
Girlfriend: Rujia
Mom: Happy
Dad: birthday
Girlfriend: to
Mom: you

 

//Code Begins
//https://uva.onlinejudge.org/external/125/12554.pdf
//Runtime: 0.000s

#include<iostream>
#include<string>

using namespace std;

int main()
{

	string s[16]={"Happy","birthday","to","you","Happy","birthday","to","you","Happy","birthday","to","Rujia","Happy","birthday","to","you"};

	int n;

	cin >> n;

	string x[n];

	for(int i=0;i<n;i++) cin >> x[i];
		
	int c;
	if(n>16){
		c=(n/16)*16;
		if(n%16!=0)
			c+=16;
	}
	else
		c=16;
	
	string o[c];
		
	for(int i=0,j=0,k=0;i<c;i++){
		o[i]=x[j];
		o[i]=o[i]+": "+s[k];
		if(j==n-1)
			j=-1;
		j++;
		
		if(k==15)
			k=-1;
		k++;
		}
	
	for(int i=0;i<c;i++)
		cout << o[i] << endl;


	return 0;
}

//Code Ends

 

Advertisements