Let the Balloon Rise

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 57556    Accepted Submission(s): 21037

Problem Description
Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges' favorite time is guessing the most popular problem. When the contest is over, they will count the balloons of each color and find the result.

This year, they decide to leave this lovely job to you.

 
Input
Input contains multiple test cases. Each test case starts with a number N (0 < N <= 1000) -- the total number of balloons distributed. The next N lines contain one color each. The color of a balloon is a string of up to 15 lower-case letters.

A test case with N = 0 terminates the input and this test case is not to be processed.

 
Output
For each case, print the color of balloon for the most popular problem on a single line. It is guaranteed that there is a unique solution for each test case.
 
Sample Input
5
green
red
blue
red
red
3
pink
orange
pink
0
 
Sample Output
red
pink

hdu_1004_Let the Balloon Rise_201307271045.c

#include <stdio.h>
#include <string.h>
int main()
{
 char str[1010][18];
 int n;
 while(scanf("%d",&n),n)
 {
 int i,j,k,m=0,num=0;
 char str1[18],str2[18];
 for(i=0;i<n;i++)
 {
  gets(str[i]);
 }
 for(j=1;j<n;j++)
 for(i=0;i<n-j;i++)
 if(strcmp(str[i],str[i+1])>0)
 {
  strcpy(str1,str[i]);
  strcpy(str[i],str[i+1]);
  strcpy(str[i+1],str1);
 }
 strcpy(str2,str[0]);
    for(i=0;i<n;i++)
    {
     if(strcmp(str2,str[i])==0)
     num++;
     else
     {
      strcpy(str2,str[i]);
      num=1;
      if(num>m)
      {
         m=num;
        
         k=i-1;
      }
     }
    }
    if(num>m)
    {
     m=num;        
        k=i-1;
    }
    printf("%s\n",str[k]);
 }       
 return 0; 
}

//超时

//参考代码如下:

#include <stdio.h>
#include <string.h>
main(){
    int n, i, j, t, max, num[1000];
    char color[1000][16];
    while(scanf("%d", &n) != EOF){
        if(n){
            num[0]=0;
            scanf("%s", color[0]);
            for(i=1; i <n; i++){
                num[i]=0;
                scanf("%s", color[i]);
                for(j=0; j <i-1; j++)
                    if(strcmp(color[i], color[j])==0) num[i] +=1;
            }
            max=num[0];
            t=0;
            for(i=1; i <n; i++)
               if(max <num[i]) {max =num[i]; t=i;}
            printf("%s\n",color[t]);
        }
    }
}

//
 
改后代码:
#include <stdio.h>
#include <string.h>
int main()
{
 char str[1010][18]; 
 int n;
 while(scanf("%d",&n),n)
 {
  int i,j,k,max;
  int num[1010]={0};
  k=max=0;
  for(i=0;i<n;i++)
  {
   scanf("%s",str[i]);
   for(j=0;j<i;j++)
   if(strcmp(str[i],str[j])==0)
   num[i]++;   
   if(num[i]>max)
   {
    max=num[i];
    k=i;
   }
  }
  printf("%s\n",str[k]);
 }
 return 0;
}

最新文章

  1. 搭建Android开发环境。
  2. C#组态控件Iocomp应用案例
  3. [MVCSharp]开始使用MVC#
  4. codevs 1202 求和
  5. animate平滑回到顶部
  6. Android 应用中十大常见 UX 错误
  7. HTML5 Canvas 颜色填充学习
  8. 函数sql黑马程序员——SQL常用函数
  9. ECMAScript迭代语句
  10. Redis命令与配置
  11. Junit简单配置
  12. 【UOJ UNR #1】火车管理
  13. GenerationType四中类型
  14. 【我的前端自学之路】【HTML5】web 存储
  15. 浅析URL(接口测试必备知识)
  16. Linux 下 解压zip文件出现乱码
  17. python的py文件命名注意事项
  18. winform调用jar包
  19. Asp.Net MVC Identity 2.2.1 使用技巧(一)
  20. FLINK流计算拓扑任务代码分析&lt;一&gt;

热门文章

  1. map集合遍历的五种方法
  2. 洛谷 P3515 [ POI 2011 ] Lightning Conductor —— 决策单调性DP
  3. SPOJ GSS 系列
  4. Play on Words(欧拉路)
  5. es6入门6--数组拓展运算符,Array.from()基本用法
  6. B - Cows and Poker Game
  7. Nmap linux端口扫描神器
  8. 在PL/SQL中使用带参数的游标
  9. Css小动画
  10. js邮箱正则表达式的使用