SHARE
TWEET

lenc1

a guest Nov 19th, 2019 99 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  int OK(int i, int j,int matrice[100][100],int n)
  5. {
  6.     if(i < 1 || j < 1 || i > n || j > n)
  7.         return 0;
  8.     if(matrice[i][j] != 0)
  9.         return 0;
  10.     return 1;
  11. }
  12.  void algFill(int x, int y,int matrice[100][100],int d[100],int nrzona,int n)
  13. { int di[4]={0,0,1,-1};
  14. int dj[4]={1,-1,0,0};
  15.     matrice[x][y] = nrzona;  
  16.     d[nrzona]++;  
  17.     for(int i = 0; i < 4; i++)
  18.     {
  19.         int noul_i = x + di[i];  
  20.         int noul_j = y + dj[i];  
  21.         if(OK(noul_i, noul_j,matrice,n)==1)  
  22.             algFill(noul_i, noul_j,matrice,d,nrzona,n);  
  23.     }
  24. }
  25.  
  26. int main()
  27. { int n;
  28. scanf("%d",&n);
  29.  
  30.     int i,j,nr=0,s=0;
  31. unsigned int a1,b,c,d;
  32. int x[100],vb;
  33. char mb,bv[10];
  34. int **a;
  35. double r;
  36.     a=malloc(200*n*sizeof(int));
  37.  
  38.     for(i=0;i<n;i++)
  39.     { scanf("%d",&x[i]);
  40.         a[i]=malloc(10*x[i]*sizeof(int));
  41.         for(j=0;j<x[i];j++)
  42.            {  
  43.  
  44. scanf("%x",&a[i][j]);
  45. }    
  46. }
  47. int num;
  48. nr=nr+2*(n-2)+4*x[0]+4*x[n-1];
  49. for( i=0;i<n;i++){
  50. for( j=0;j<x[i];j++){
  51. num=a[i][j];
  52. a1=(num&0XFF);  
  53.     b=((num>>8)&0XFF);  
  54.     c=((num>>16)&0XFF);  
  55.     d=((num>>24)&0XFF);  
  56. if(a1>=128 && a1<=255)
  57. a1=-(256-a1);
  58. if(b>=128 && b<=255)
  59. b=-(256-b);
  60. if(c>=128 && c<=255)
  61. c=-(256-c);
  62. if(d>=128 && d<=255)
  63. d=-(256-d);
  64.  
  65.  
  66. if(i==0 || i==n-1)
  67. {s=s+a1+b+c+d;
  68.  
  69. }
  70. else
  71. {
  72. if(j==0)
  73. s=s+a1;
  74. if(j==x[i]-1)
  75. s=s+d;
  76. }
  77. }
  78. }
  79.  
  80. r=(double)s/nr;
  81.  printf("task 1\n");
  82. printf("%.7lg\n",r);
  83.  
  84. char w1,w2;
  85. int e1,e2,y;
  86. scanf("%d",&y);
  87.  
  88. for(i=0;i<y;i++){
  89.  scanf("%c %c %d %d",&w1,&w2,&e1,&e2);
  90.  
  91. if(w1=='M'){
  92.  
  93. scanf("%x",&vb);
  94.   if(w2=='S')
  95. {if(x[e1]<e2)
  96. {a[e1]=realloc(a[e1],(e2+3)*sizeof(short int));
  97. x[e1]=e2+3;
  98. }
  99. a[e1][e2]=vb;
  100. }
  101.  if(w2=='I')
  102. {if(x[e1]<e2)
  103. {a[e1]=realloc(a[e1],(e2+3)*sizeof(int));
  104. x[e1]=e2+3;
  105. }
  106. a[e1][e2]=vb;
  107. }
  108.  if(w2=='C')
  109. {if(x[e1]<e2)
  110. {a[e1]=realloc(a[e1],(e2+3)*sizeof(char));
  111. x[e1]=e2+3;
  112. }
  113. a[e1][e2]=vb;
  114. }
  115. }
  116. scanf(" ");
  117. if(w1=='D'){
  118. if(w2=='C')
  119.    
  120.  
  121.  
  122. if(w2=='S'){
  123. /*a[e1][e2/2][4*(e2%2)]='0';
  124. a[e1][e2/2][4*(e2%2)+1]='0';
  125. a[e1][e2/2][4*(e2%2)+2]='0';
  126. a[e1][e2/2][4*(e2%2)+3]='0';
  127. */
  128. }
  129.  
  130. }
  131.  
  132. if(w1=='S'){
  133.  
  134. /* c=a[e1][e2][0];
  135. a[e1][e2][0]=a[e1][e2][6];
  136.  a[e1][e2][6]=c;
  137.    c=a[e1][e2][1];
  138. a[e1][e2][1]=a[e1][e2][7];
  139. a[e1][e2][7]=c;
  140.  c=a[e1][e2][2];
  141. a[e1][e2][2]=a[e1][e2][4];
  142. a[e1][e2][4]=c;
  143.  c=a[e1][e2][3];
  144. a[e1][e2][3]=a[e1][e2][5];
  145. a[e1][e2][5]=c;*/
  146. }
  147.  
  148. }
  149.  
  150.  
  151. printf("task 1\n");
  152.  
  153. printf("%.7lg\n",r);
  154. printf("task 2\n");
  155.      for(i=0;i<n;i++){
  156. for(j=0;j<x[i];j++){
  157. printf("%08X ",a[i][j]);
  158. }
  159. printf("\n");
  160. }/*
  161. int re[100][100];
  162. for(i=0;i<100;i++){
  163. for(j=0;j<100;j++){
  164. re[i][j]=1;
  165. }
  166. }
  167.      for(i=0;i<n;i++){
  168. for(j=0;j<x[i];j++){
  169.         num = (int)strtol(a[i][j], NULL, 16);  
  170.         a1=(num&0XFF);  
  171.             b=((num>>8)&0XFF);  
  172.             c=((num>>16)&0XFF);  
  173.             d=((num>>24)&0XFF);  
  174. if(a1>=128 && a1<=255)
  175. a1=-(256-a1);
  176. if(a1==0)
  177. re[i][4*j+1]=0;
  178. if(b>=128 && b<=255)
  179. b=-(256-b);
  180. if(b==0)
  181. re[i][4*j+2]=0;
  182. if(c>=128 && c<=255)
  183. c=-(256-c);
  184. if(c==0)
  185. re[i][4*j+3]=0;
  186. if(d>=128 && d<=255)
  187. d=-(256-d);
  188. if(d==0)
  189. re[i][4*j+4]=0;
  190. }
  191. }
  192. int di[4]={0,0,1,-1};
  193. int dj[4]={1,-1,0,0};
  194. int nrzona=2,maxim=0,d1[100],p1=20,p2=20,ne=0;
  195. for(i=0;i<100;i++){
  196. d1[i]=0;
  197. }
  198. for(i = 0; i < n; i++)
  199.         {
  200.             for(j = 0; j < n; j++)
  201.         {
  202.             if(re[i][j]==0)
  203.             {
  204.                     nrzona++;
  205.                     algFill(i,j,re,d1,nrzona,n);
  206.                     if(maxim < d1[nrzona]){
  207.                      maxim = d1[nrzona];
  208.                 ne=nrzona;
  209.             }
  210.                     }
  211.                     }
  212.     }
  213. for(i = 0; i < n; i++)
  214.             {
  215.             for(j = 0; j < 56; j++)
  216.             {if(re[i][j]==ne){
  217.         if(i<p1 || (p1==i && p2>j)){
  218.         p1=i;
  219.         p2=j;
  220. }
  221. }
  222. }
  223. }
  224.  
  225. printf("task 3\n");
  226. printf("%d %d %d",maxim,p1,p2);
  227. */
  228.  
  229.  
  230. return 0;
  231. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top