Codeforces Round #351 (VK Cup 2016 Round 3, Div. 2 Edition) C

 

5000的数据量,直接暴力扫!

#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;


int map[5001];
int mapp[5001];
int a[5010];
int main()
{
    int n,i,j;
    while(scanf("%d",&n)!=EOF)
    {
        for(i=1;i<=n;i++)
            scanf("%d",&a[i]);
        memset(map,0,sizeof(map));
        for(i=1;i<=n;i++)
        {
            int maxn=-1;
            int anss;
            
            for(j=1;j<=n;j++)
                mapp[j]=0;
            for(j=i;j<=n;j++)
            {
                mapp[a[j]]++;
                if(mapp[a[j]]>maxn)
                {
                    maxn=mapp[a[j]];
                    anss=a[j];
                }
                if(mapp[a[j]]==maxn&&a[j]<anss)
                {
                    anss=a[j];
                    maxn=mapp[a[j]];
                }
                map[anss]++;
            }    
        }

        for(i=1;i<=n;i++)
            printf("%d ",map[i]);
        printf("\n");
    }
    return 0;

}

 

posted @ 2016-05-09 22:29  吾心安处  阅读(120)  评论(0编辑  收藏  举报