Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // glavna i==j, nad glavna i<j, pod glavna i>j
- // sporedna i+j==n-1, nad sporedna i+j<n-1, pod sporedna i+j>n-1
- // sosedi - gore matrica[i-1][j], dole matrica[i+1][j], levo matrica[i][j-1], desno matrica[i][j+1]
- // granici - gore i>0, dole i<n-1, levo j>0, desno j<n-1
- // kosi sosedi - gore-desno matrica[i-1][j+1], gore-levo matrica[i-1][j-1], dole-desno matrica[i+1][j+1], dole-levo matrica[i+1][j-1]
- // kosi granici - kombinirame dve granici primer gore-desno = gore && desno
- /*
- j==0 j==n-1
- 1 2 3 4 1 i==0
- 5 6 8 9 2
- 1 2 3 4 3
- 3 4 5 6 4
- 3 8 7 6 4 i==n-1
- */
- int daliProst(int x){
- int delitel;
- for(delitel=2;delitel<=x/2;delitel++){
- if(x%delitel==0){
- return 0;
- }
- }
- return 1;
- }
- int main(){
- int n,i,j;
- scanf("%d",&n);
- int matrica[n][n];
- int i1,j1,k,m;
- scanf("%d%d",&i1,&j1);
- int n2;
- scanf("%d",&n2);
- int matrica2[n2][n2];
- for(i=0;i<n;i++){
- for(j=0;j<n;j++){
- scanf("%d",&matrica[i][j]);
- }
- }
- // n=5, n2=2, i1=2, j1=1
- // dali moze tolkava podmatrica / granici
- if(i1>=0 && j1>=0 && i1+n2<=n && j1+n2<=n){
- for(k=0;k<n2;k++){
- for(m=0;m<n2;m++){
- matrica2[k][m]=matrica[i1+k][j1+m];
- }
- }
- }else{
- printf("Ne moze tolkava podmatrica\n");
- }
- for(i=0;i<n2;i++){
- for(j=0;j<n2;j++){
- printf("%d ",matrica2[i][j]);
- }
- printf("\n");
- }
- return 0;
- }
- // regioni spored vnesen index
- /*
- int suma1=0;
- int suma2=0;
- int suma3=0;
- int suma4=0;
- for(i=0;i<n;i++){
- for(j=0;j<n;j++){
- // prv region
- if(i<i1 && j<=j1){
- suma1+=matrica[i][j];
- }
- // vtor region
- if(i>=i1 && j<=j1){
- suma2+=matrica[i][j];
- }
- // tret region
- if(i<i1 && j>j1){
- suma3+=matrica[i][j];
- }
- // cetvrt region
- if(i>=i1 && j>j1){
- suma4+=matrica[i][j];
- }
- }
- }
- if(suma1 > suma2 && suma1 > suma3 && suma1 > suma4){
- printf("Suma1 e najgolema %d\n",suma1);
- }
- return 0;
- }
- */
- /*
- // dali sekoj ima barem 1 neparen sosed
- int baremEdenSosed=0;
- for(i=0;i<n;i++){
- for(j=0;j<n;j++){
- baremEdenSosed=0;
- // gore sosed matrica[i-1][j]
- if(i>0 && matrica[i-1][j]%2==1){
- baremEdenSosed=1;
- }
- // gore-desno sosed matrica[i-1][j+1]
- if(i>0 && j<n-1 && matrica[i-1][j+1]%2==1){
- baremEdenSosed=1;
- }
- // gore-levo sosed matrica[i-1][j-1]
- if(i>0 && j>0 && matrica[i-1][j-1]%2==1){
- baremEdenSosed=1;
- }
- // dole sosed
- if(i<n-1 && matrica[i+1][j]%2==1){
- baremEdenSosed=1;
- }
- // dole-levo sosed matrica[i+1][j-1]
- if(i<n-1 && j>0 && matrica[i+1][j-1]%2==1){
- baremEdenSosed=1;
- }
- // dole-desno sosed matrica[i+1][j+1]
- if(i<n-1 && j<n-1 && matrica[i+1][j+1]%2==1){
- baremEdenSosed=1;
- }
- // levo sosed
- if(j>0 && matrica[i][j-1]%2==1){
- baremEdenSosed=1;
- }
- // desno sosed
- if(j<n-1 && matrica[i][j+1]%2==1){
- baremEdenSosed=1;
- }
- pom[i][j]=baremEdenSosed;
- }
- }
- */
- // regioni spored dijagonali
- /*
- int reg1=0;
- int reg2=0;
- int reg3=0;
- int reg4=0;
- for(i=0;i<n;i++){
- for(j=0;j<n;j++){
- // prv region
- if(i<j && i+j<n-1){
- if(daliProst(matrica[i][j])){
- reg1++;
- }
- }
- // vtor region
- if(i>j && i+j<n-1){
- if(daliProst(matrica[i][j])){
- reg2++;
- }
- }
- // tret region
- if(i>j && i+j>n-1){
- if(daliProst(matrica[i][j])){
- reg3++;
- }
- }
- // cetvrt region
- if(i<j && i+j>n-1){
- if(daliProst(matrica[i][j])){
- reg4++;
- }
- }
- }
- }
- if(reg1!=0 && reg2!=0 && reg3!=0 && reg4!=0){
- printf("Dobra e matricata\n");
- }else{
- printf("Nema dovolno prosti broevi vo sekoj region\n");
- }
- int brojacNad=0;
- int brojacPod=0;
- for(i=0;i<n;i++){
- for(j=0;j<n;j++){
- // nad glavna i neparen
- if(i<j && matrica[i][j]%2==1){
- brojacNad++;
- }else if(i>j && matrica[i][j]%2==1){
- brojacPod++;
- }
- // nad sporedna i neparen
- if(i+j<n-1 && matrica[i][j]%2==1){
- brojacNad++;
- }else if(i+j>n-1 && matrica[i][j]%2==1){
- brojacPod++;
- }
- }
- }
- printf("Nad glavna %d, pod glavna %d\n",brojacNad,brojacPod);
- */
Advertisement
Add Comment
Please, Sign In to add comment