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