?? bala.cpp
字號:
#include <iostream>
#include <fstream>
using namespace std;
#define sign(x) ((x)==0?0:((x)>0?1:-1))
int calc (int data[], int cnt)
{
if (cnt<=0)
return 0;
int * value=new int[cnt+1];
int * first=new int[cnt+1];
int * last=new int[cnt+1];
int i;
for (i=0;i<cnt+1;i++)
first[i]=-1;
value[0]=0;
for (i=1;i<cnt+1;i++)
value[i]=value[i-1]+sign(data[i-1]);
for (i=0;i<cnt+1;i++)
{
int v=value[i];
if (first[v]==-1)
first[v]=last[v]=i;
else
last[v]=i;
}
int max=0;
for (i=0; i<cnt+1; i++)
if (first[i] != -1 && max < last[i] - first[i])
max = last[i] - first[i];
delete value;
delete first;
delete last;
return max;
}
int main()
{
ifstream in("input.txt");
int n;
in>>n;
int *t;
t=new int[n];
for (int j=0;j<n;j++)
in>>t[j];
int max1=calc(t,sizeof(t)/sizeof(t[0]));
ofstream out("output.txt");
out<<max1<<endl;
in.close();
out.close();
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -