Advertisement
Guest User

lenc1

a guest
Nov 19th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement