模拟放数过程,从大往小放。
先放最外层,最外层有可能不会被放满,然后逐步的往里放,一直到第一层为止。
#include#include #include #include using namespace std; int dp[100001]; void chu(int n,int m) { int i,j; for(i=1; i<=m; i++) { dp[i]=min(i,n); } int st=n-1; for(j=st; j>=1; j--) { dp[i+st-j]=j; } } int main() { int n,m,k; int leap=0; int i,j; int step; while(~scanf("%d %d %d%*c",&n,&m,&k)) { if(m =k)break; } int biao; biao=i; int need=dp[i]-(sum-k); step-=(sum-k)*i; cout< =1; i--) { for(j=1; j<=dp[i]; j++) { st=i; ii=1,jj=1; ll=0; while(st--) { if(leap==0)printf("(%d,%d)",ii,jj); else printf("(%d,%d)",jj,ii); if(ll==0)jj++; else ii++; if(jj==min(i,m)+2-j) { jj--; ll=1; ii++; } } cout<