codeforces 390D Inna and Sweet Matrix

时间:2023-03-09 15:54:08
codeforces 390D	 Inna and Sweet Matrix

几个小结论:

1.路径长度=i+j-1;

2.最简单的走法是先横走再竖着走或者先竖着走再横着走

#include<cstdio>
#include<cstring>
using namespace std; void print(int x,int y)
{
for(int i=; i<=y; i++)
printf("(1,%d) ",i);
for(int i=; i<=x; i++)
printf("(%d,%d) ",i,y);
printf("\n");
} int main()
{
int n,m,k;
scanf("%d%d%d",&n,&m,&k);
int cnt=;
int ans=;
int l,i;
for(l=;; l++)
{
for(i=; i<=n&&i<l; i++)
{
if(l-i>m)continue;
ans+=l-;
cnt++;
if(cnt>=k)break;
}
if(cnt>=k)break;
}
printf("%d\n",ans);
// printf("%d %d\n",l,i);
for(; i>=; i--)
{
if(l-i>m)break;
print(i,l-i);
}
l--;
for(; l>=; l--)
for(i=; i<l&&i<=n; i++)
{
if(l-i>m)continue;
print(i,l-i);
}
return ;
}