Codeforces Round #229 (Div. 2)

2014-11-24 09:11:17 · 作者: · 浏览: 0

模拟放数过程,从大往小放。

先放最外层,最外层有可能不会被放满,然后逐步的往里放,一直到第一层为止。

#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<