#include<bits/stdc++.h>
using namespace std;
int n;
int a[10004],b[100004];
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
int ans=0;
int hh=0;
a[0]=0;
a[n+1]=1001;
for(int i=1;i<=n;i++)
{
if(a[i-1]+1==a[i]&&a[i]+1==a[i+1]) ans++;
else ans=0;
hh=max(hh,ans);
}
printf("%d\n",hh);
}
#include<bits/stdc++.h>
using namespace std;
int m,n;
int t[3002][3004];
int tt[3002][3004];
int dp[3003][3004];
int ans=0;
template<class T>inline void read(T &res)
{
char c;T flag=1;
while((c=getchar())<'0'||c>'9')if(c=='-')flag=-1;res=c-'0';
while((c=getchar())>='0'&&c<='9')res=res*10+c-'0';res*=flag;
}
int main()
{
read(n);
read(m);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
int xx;
read(xx);
t[i][j]=xx;
}
}
dp[n][0]=1;
for(int i=n;i>=1;i--)
{
for(int j=1;j<=m;j++)
{
if(t[i][j]) continue;
dp[i][j]=dp[i][j-1]+dp[i+1][j];
dp[i][j]=dp[i][j]%2333;
}
}
printf("%d\n",dp[1][m]%2333);
}
#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int a[1004][1004];
char s[1004][1004];
int main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=n;i++)
{
// for(int j=1;j<=m;j++)
// {
scanf("%s",s[i]+1);
// }
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
a[i][j]=s[i][j]-'0'+a[i-1][j]+a[i][j-1]-a[i-1][j-1];
// printf("%d ",a[i][j]);
}
// printf("\n");
}
int ans=0;
for(int i=1;i<=n-k+1;i++)
{
for(int j=1;j<=m-k+1;j++)
{
int s=a[i+k-1][j+k-1]-a[i-1][j+k-1]-a[i+k-1][j-1]+a[i-1][j-1];
if(s)
{
ans++;
// printf("%d %d\n",i,j);
}
}
}
printf("%d\n",ans);
}
#include<bits/stdc++.h>
using namespace std;
long long n;
int main()
{
cin>>n;
long long x;
scanf("%d",&x);//x必为奇数
// 奇 ^ 1 = 偶
// 奇 ^ 0 = 奇
for(int i=0;i<n-1;i++)
{
scanf("%d",&x);
if(x%2) printf("0\n");
else printf("1\n");
}
}
#include<bits/stdc++.h>
#define ull unsigned long long
const ull B= 10000007;
using namespace std;
vector<int> aa;
char s[1000006];
int l=0;
int maxl;
int ma()
{
int ans=0;
ull ah=0,bh=0;
ull t=1;
for(int i=0;i<l/3-1;i++)
{
ah=ah*B+s[i];
bh=bh+s[l-1-i]*t;
if(ah==bh)
{
aa.push_back(i+1);
ans++;
}
t*=B;
// printf("ans=%d\n",ans);
}
return ans;
}
int pd(int lm)
{
ull t=1;
for(int i=0;i<lm;i++) t*=B;
ull ah=0,bh=0;
for(int i=0;i<lm;i++) ah=ah*B+s[i];
for(int i=0;i<lm;i++) bh=bh*B+s[i];
for(int i=lm;i<l-lm;i++)
{
bh=bh*B+s[i]-s[i-lm]*t;
if(i-lm>=lm&&bh==ah) return 1;
}
return 0;
}
int main()
{
cin>>s;
l=strlen(s);
int maxl=ma();
// printf("maxl=%d\n",maxl);
for(int i=maxl;i>=1;i--)
{
// printf("i=%d\n",aa[i-1]);
if(pd(aa[i-1]))
{
for(int j=0;j<aa[i-1];j++)
{
printf("%c",s[j]);
}
printf("\n");
return 0;
}
}
}
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a[20],b[20],c[20],d[20];
ll cf=0,mf=0;
int n;
ll ans=0;
void dfs(int i,int way)
{
if(i==n)
{
ans=max(ans,cf*mf);
return ;
}
ll t;
// i++;
cf+=a[i];
t=mf;
mf=max(0*1ll,mf-b[i]);
dfs(i+1,1);
mf=t;
cf-=a[i];
t=cf;
cf=max(0*1ll,cf-d[i]);
mf+=c[i];
dfs(i+1,0);
cf=t;
mf-=c[i];
}
int main()
{
// cin>>n;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
// printf("?\n");
// cin>>a[i]>>b[i]>>c[i]>>d[i];
scanf("%lld%lld%lld%lld",&a[i],&b[i],&c[i],&d[i]);
}
ll t;
int i=0;
cf+=a[i];
t=mf;
mf=max(0*1ll,mf-b[i]);
dfs(1,1);
mf=t;
cf-=a[i];
t=cf;
cf=max(0*1ll,cf-d[i]);
mf+=c[i];
dfs(1,0);
cf=t;
mf-=c[i];
printf("%lld\n",ans);
}
#include<bits/stdc++.h>
using namespace std;
long long n,m;
int q;
int Q[500005];
struct node
{
long long a,b,c;
}A[500005];
bool cmp1(node & A,node & B)
{
return A.a<B.a;
}
bool cmp2(node & A,node & B)
{
return A.b>B.b;
}
bool cmp3(node & A,node & B)
{
return A.c>B.c;
}
int main()
{
cin>>q;
while(q--)
{
scanf("%lld%lld",&n,&m);
int num=0;
for(int i=0;i<n;i++)
{
scanf("%lld%lld",&A[i].a,&A[i].b);
A[i].c=A[i].b-A[i].a;
if(A[i].c>0) num++;
}
sort(A,A+n,cmp3);//收益为正 的 越靠前
sort(A,A+num,cmp1);//确保收益为正中 代价最小越靠前
sort(A+num,A+n,cmp2);//收益为负中 恢复量越多越靠前
//不能 代价越小越靠前 因为 所有都能撞的条件为 消耗为 -(A[num~n].c-A[n].b) 最后一个的收益获取没意义
//则需要使最后浪费的那个收益最小
int flag=0;
for(int i=0;i<n;i++)
{
if(m<A[i].a)
{
flag=1;
break;
}
m+=A[i].c;
}
if(flag)printf("No\n");
else printf("Yes\n");
}
}