五颜六色的气球

来源:互联网 发布:淘宝哪些不需要保证金 编辑:程序博客网 时间:2024/04/28 02:56

FJNU.1975

Description
游乐园的天空中飘满了气球,明明对这些气球突然有了兴趣,他需要你的帮助 
你将会被告知气球的数量以及每个气球的颜色
相同颜色的气球数量被称为这种颜色的频率。

Input
第一行为N(N<=100),接下来的N行为1~N个气球的颜色(单词的长度不超过14个字母)

Output
第一行为气球颜色的总数.
从第二行开始,按照以下规则输出:
先输出最大频率(占一行);
再按词典顺序输出是这种频率的颜色,一种颜色占一行。
对其它所有频率按从大到小的顺序进行相同的操作(要保证操作了所有的频率与颜色)。

Sample Input
5
green
red
blue
red
red

3
pink
orange
pink

Sample Output
3
3
red
1
blue
green

2
2
pink
1
orange

Source
2007'福建师范大学低年级学生程序设计大赛

My Program

#include<iostream>
#include
<string.h>
using namespace std;
char color[100][14];
int N,c=0,a[100]={0};

void InColor(char tc[])
{
    
int i;
    
for(i=0;i<c;i++)
        
if(!strcmp(tc,color[i]))
        
{
            a[i]
++;
            
return;
        }

    strcpy(color[c],tc);
    a[c
++]=1;
}
        

int main()
{
    
int i,j,t;
    
char tc[14];
    cin
>>N;
    
for(i=0;i<N;i++)
    
{
        cin
>>tc;
        InColor(tc);
    }

    cout
<<c<<endl;
    
for(i=0;i<c;i++)
        
for(j=i+1;j<c;j++)
            
if(a[i]<a[j])
            
{
                strcpy(tc,color[i]);
                strcpy(color[i],color[j]);
                strcpy(color[j],tc);
                t
=a[i];
                a[i]
=a[j];
                a[j]
=t;
            }

    
for(i=0;i<c;i++)
        
for(j=i+1;j<c;j++)
            
if(a[i]==a[j])
            
{
                t
=0;
                
while(color[i][t]==color[j][t])
                    t
++;
                
if(color[i][t]>color[j][t])
                
{
                    strcpy(tc,color[i]);
                    strcpy(color[i],color[j]);
                    strcpy(color[j],tc);
                }

            }

    
for(i=0;i<c;i++)
    
{
        cout
<<a[i]<<endl;
        j
=i;
        cout
<<color[i]<<endl;
        
while(j<c&&a[i+1]==a[j]&&i+1<c)
        
{
            i
++;
            cout
<<color[i]<<endl;
        }

    }

    
return 0;
}

YOYO's Note:
不过是输入,比较,计数,最后排序输出而已。数据很弱,所以这个程序是0.00s……
 比赛当时很紧张,题目都没有好好审。
在输出的时候我看到SAMPLE顺序,还以为是按输入的倒序输出,
花了很长时间去想倒序要怎么写,提交WA了之后认真地看了一下题目,
才发现有按词典顺序输出 - - !超郁闷地乱写了个sort,一下AC。
那个时候我还不会用STL,自己乱写的不伦不类,既不选择又不冒泡……
至今还不会写…… T-T 数据结构这方面真的是烂到可以……

原创粉丝点击