搞了好久,原來INPUT 不只 1 或 -1 或 0喔= =
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<map.h> #define MAX 1000000 int down[2*MAX+1]; int main() { int n; while(scanf("%d",&n)!=EOF) { int inp; int _max=0; int cnt=0; memset(down,-1,(2*MAX+1)*sizeof(int)); down[MAX]=0; for(int ln=1;ln<=n;ln++) { scanf("%d",&inp); if(inp>0) cnt++; else if(inp<0) cnt--; if(down[cnt+MAX]==-1) down[cnt+MAX]=ln; else _max=(_max<(ln-down[cnt+MAX])) ? (ln-down[cnt+MAX]):_max; } printf("%d\n",_max); } return 0; }
沒有留言:
張貼留言