CF 224 B Array

2014-11-23 23:18:22 · 作者: · 浏览: 3
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define FF(i, a, b) for(int i=a; ib; i--)
#define CLR(a, b) memset(a, b, sizeof(a))
#define REP(i, n) for(int i=0; i q;
        LL ans = -1, cnt = 0, tmp = 0;
        int j = 1;
        FF(i, 1, n+1)
        {
            scanf("%d", &a);
            if(!vis[a]) cnt++;
            vis[a]++;
            q.push(a);  tmp += a;
            while(vis[q.front()] >
1) { vis[q.front()] -= 1; q.pop(); j++; tmp -= q.front(); } if(cnt > k) { vis[q.front()]--; q.pop(); ++; tmp -= q.front(); } if(cnt == k && (ans == -1 || ans > tmp)) { ans = tmp, r = i; } } if(ans == -1) puts("-1 -1"); else printf("%d %d\n", l, r); } return 0; }