Cod sursa(job #585516)

Utilizator alexalbu95Albu Alexandru alexalbu95 Data 29 aprilie 2011 22:12:50
Problema Tablete Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.86 kb
#include<cstdio>
long n, k, p, i, j, a[1001][1001], x, c, t, r, caut, dif;
int main()
{ 
	freopen("tablete.in", "r", stdin);
	freopen("tablete.out", "w", stdout);
	
	scanf("%d %d", &n, &k);
	p=1;
	
	for(i=1; i<=n; ++i) 
	  for(j=1; j<=k; ++j) if(!a[i][j] && j!=k) { a[i][j]=p;
										         ++p;
											   }
	                      else if(j==k) if(p%2==0) { a[i][j]=p;
							                         ++p;
							                       }
							            else { a[i][j]=p+1; 
									           a[i+1][1]=p; 
									           p+=2;
         								     }
	c=1;
	for(i=1; i<=n; ++i)
	 { while(c<=x) for(j=1; j<=n; ++j) if(a[i][j]==c) { ++c;
	                                                    i=1;
														j=n+1; 
		                                              }
									   else for(t=1; t<=n; ++t)
									           for(r=k+1; r<=n; ++r) if(c>a[t][r-1]) { a[t][r]=c; 
										                                               t=n+1;
											                                           r=n+1; 
													                                   ++c;
																					   i=1;
																					   j=n+1;
													                                 }
     }
	
   /* if(a[n][k]-a[n][k-1]>1) { dif=a[n][k]-a[n][k-1]; 
							  caut=a[n][k-1];
							  for(i=1; i<=n; ++i) 
								  for(j=k+1; j<=n; ++j) { ++caut;
														  if(caut==dif) caut++;
							                              a[i][j]=caut;
								                        }
							}
	else {
	//for(i=1; i<=n; ++i){	for(j=1; j<=n; ++j) printf("%d ", a[i][j]); printf("\n"); }					*/
								
	for(i=1; i<=n; ++i)
		for(j=k+1; j<=n; ++j) { a[i][j]=p; 
	                            ++p;
		                      }
	//}

	
	for(i=1; i<=n; ++i)
	{ for(j=1; j<=n; ++j) printf("%d ", a[i][j]);
	  printf("\n");
	}
	
	fclose(stdin);
	fclose(stdout);
	return 0;
}