link
my Chinese blog https://blog.csdn.net/m0_37809890/article/details/80153601
code
/* LittleFall : Hello! */
#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
inline int read();
inline void write(int x);
const int M = 1024;
int save[M];
int main(void)
{
int n=read(),ans=0;
for(int i=1;i<=n;i++)
save[i]=read();
int vecs=save[n]+1;
int r=n,l=1,ready=0;
for(int vec=1;vec<vecs;vec++)
{
if(save[l]<=ready)
l++,r--;
else if(ready+vecs-vec==save[r])
ready++,ans+=vecs-vec;
}
printf("%d\n",ans );
r=n,l=1,ready=0;
for(int vec=1;vec<vecs;vec++)
{
if(save[l]<=ready)
l++,r--;
else if(ready+vecs-vec==save[r])
{
for(int j=vec+1;j<=vecs;j++)
printf("%d %d\n",vec,j );
ready++;
ans+=vecs-vec;
}
}
return 0;
}
inline int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9') {if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
inline void write(int x)
{
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
Chinese is not the official language supported by CodeForces
however a link would be ok
I see. Thank you very much.
Auto comment: topic has been updated by LittleFall (previous revision, new revision, compare).