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.
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 whitespace characters inside.
Output the song, formatted as above.
3 Mom Dad Girlfriend
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
Rujia Liu's Present 6: Happy 30th Birthday to Myself
Special Thanks: All of you, for participating in this contest; Mom and Dad, for giving birth to me :)
题意很简单,就是N个人,没人唱一次歌词,如果人数多于16,则重复
#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; char name[105][105]; char song[16][16] = {"Happy","birthday","to","you","Happy","birthday","to","you","Happy","birthday","to","Rujia","Happy","birthday","to","you"}; int main() { int n,i,j,k; while(~scanf("%d",&n)) { for(i = 0; i<n; i++) scanf("%s",name[i]); k = n/16; if(n%16) k++; for(i = 0; i<16*k; i++) printf("%s: %s\n",name[i%n],song[i%16]); } return 0; }