您的位置:首页 > 其它

HDU 5247 【学习SET使用】

2015-06-15 13:30 295 查看
#include <iostream>
#include <set>
#include <cstdio>
#include <string.h>
using namespace std;
#define maxn 10010
int a[maxn],ans[1100];
int main()
{
    int n,m;
    int cas=0;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        memset(ans,0,sizeof(ans));
        for(int i=0;i<n;i++) scanf("%d",&a[i]);
        for(int i=0;i<n;i++)
        {
            int Min,Max;
            Min=Max=a[i];
            set<int>que;
            for(int j=0;j<1000;j++)
            {
                que.insert(a[j+i]);
                if((j+1)!=que.size()) break;
                Min=min(Min,a[j+i]);
                Max=max(Max,a[j+i]);
                if(Max-Min==j)
                    ans[j+1]++;
            }
        }
        int q;
        printf("Case #%d:\n",++cas);
        while(m--)
        {
            scanf("%d",&q);
            printf("%d\n",ans[q]);
        }
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: