bala.cpp
来自「给定n个整数a , a , ,an 1 2  组成的序列。序列中元」· C++ 代码 · 共 69 行
CPP
69 行
#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 + =
减小字号Ctrl + -
显示快捷键?