| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
把数组改成vector后从runtime error变成wrong answer了,哪里错了,求助#include <iostream>
#include <algorithm>
#include <vector>
#include <set>
#include <map>
using namespace std;
int solve(int P, vector<int> a)
{
set<int> all;
int i, n;
for(i = 0; i < P; i++)
all.insert(a[i]);
n = all.size();
int s = 0, t = 0, num = 0;
map<int, int> count;
int res = P;
while(true)
{
while(t < P && num < n)
if(count[a[t++]]++ == 0)
num++;
if(num < n)
break;
res = min(res, t-s);
if(--count[a[t++]] == 0)
num--;
}
return res;
}
int main(int argc, char *argv[])
{
int P, x;
vector<int> a;
scanf("%d", &P);
for(int i = 0; i < P; i++)
{
scanf("%d", &x);
a.push_back(x);
}
int res = solve(P, a) ;
printf("%d\n", res);
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator