Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<string.h>
- int OK(int i, int j,int matrice[100][100],int n)
- {
- if(i < 1 || j < 1 || i > n || j > n)
- return 0;
- if(matrice[i][j] != 0)
- return 0;
- return 1;
- }
- void algFill(int x, int y,int matrice[100][100],int d[100],int nrzona,int n)
- { int di[4]={0,0,1,-1};
- int dj[4]={1,-1,0,0};
- matrice[x][y] = nrzona;
- d[nrzona]++;
- for(int i = 0; i < 4; i++)
- {
- int noul_i = x + di[i];
- int noul_j = y + dj[i];
- if(OK(noul_i, noul_j,matrice,n)==1)
- algFill(noul_i, noul_j,matrice,d,nrzona,n);
- }
- }
- int main()
- { int n;
- scanf("%d",&n);
- int i,j,nr=0,s=0;
- unsigned int a1,b,c,d;
- int x[100],vb;
- char mb,bv[10];
- int **a;
- double r;
- a=malloc(200*n*sizeof(int));
- for(i=0;i<n;i++)
- { scanf("%d",&x[i]);
- a[i]=malloc(10*x[i]*sizeof(int));
- for(j=0;j<x[i];j++)
- {
- scanf("%x",&a[i][j]);
- }
- }
- int num;
- nr=nr+2*(n-2)+4*x[0]+4*x[n-1];
- for( i=0;i<n;i++){
- for( j=0;j<x[i];j++){
- num=a[i][j];
- a1=(num&0XFF);
- b=((num>>8)&0XFF);
- c=((num>>16)&0XFF);
- d=((num>>24)&0XFF);
- if(a1>=128 && a1<=255)
- a1=-(256-a1);
- if(b>=128 && b<=255)
- b=-(256-b);
- if(c>=128 && c<=255)
- c=-(256-c);
- if(d>=128 && d<=255)
- d=-(256-d);
- if(i==0 || i==n-1)
- {s=s+a1+b+c+d;
- }
- else
- {
- if(j==0)
- s=s+a1;
- if(j==x[i]-1)
- s=s+d;
- }
- }
- }
- r=(double)s/nr;
- printf("task 1\n");
- printf("%.7lg\n",r);
- char w1,w2;
- int e1,e2,y;
- scanf("%d",&y);
- for(i=0;i<y;i++){
- scanf("%c %c %d %d",&w1,&w2,&e1,&e2);
- if(w1=='M'){
- scanf("%x",&vb);
- if(w2=='S')
- {if(x[e1]<e2)
- {a[e1]=realloc(a[e1],(e2+3)*sizeof(short int));
- x[e1]=e2+3;
- }
- a[e1][e2]=vb;
- }
- if(w2=='I')
- {if(x[e1]<e2)
- {a[e1]=realloc(a[e1],(e2+3)*sizeof(int));
- x[e1]=e2+3;
- }
- a[e1][e2]=vb;
- }
- if(w2=='C')
- {if(x[e1]<e2)
- {a[e1]=realloc(a[e1],(e2+3)*sizeof(char));
- x[e1]=e2+3;
- }
- a[e1][e2]=vb;
- }
- }
- scanf(" ");
- if(w1=='D'){
- if(w2=='C')
- if(w2=='S'){
- /*a[e1][e2/2][4*(e2%2)]='0';
- a[e1][e2/2][4*(e2%2)+1]='0';
- a[e1][e2/2][4*(e2%2)+2]='0';
- a[e1][e2/2][4*(e2%2)+3]='0';
- */
- }
- }
- if(w1=='S'){
- /* c=a[e1][e2][0];
- a[e1][e2][0]=a[e1][e2][6];
- a[e1][e2][6]=c;
- c=a[e1][e2][1];
- a[e1][e2][1]=a[e1][e2][7];
- a[e1][e2][7]=c;
- c=a[e1][e2][2];
- a[e1][e2][2]=a[e1][e2][4];
- a[e1][e2][4]=c;
- c=a[e1][e2][3];
- a[e1][e2][3]=a[e1][e2][5];
- a[e1][e2][5]=c;*/
- }
- }
- printf("task 1\n");
- printf("%.7lg\n",r);
- printf("task 2\n");
- for(i=0;i<n;i++){
- for(j=0;j<x[i];j++){
- printf("%08X ",a[i][j]);
- }
- printf("\n");
- }/*
- int re[100][100];
- for(i=0;i<100;i++){
- for(j=0;j<100;j++){
- re[i][j]=1;
- }
- }
- for(i=0;i<n;i++){
- for(j=0;j<x[i];j++){
- num = (int)strtol(a[i][j], NULL, 16);
- a1=(num&0XFF);
- b=((num>>8)&0XFF);
- c=((num>>16)&0XFF);
- d=((num>>24)&0XFF);
- if(a1>=128 && a1<=255)
- a1=-(256-a1);
- if(a1==0)
- re[i][4*j+1]=0;
- if(b>=128 && b<=255)
- b=-(256-b);
- if(b==0)
- re[i][4*j+2]=0;
- if(c>=128 && c<=255)
- c=-(256-c);
- if(c==0)
- re[i][4*j+3]=0;
- if(d>=128 && d<=255)
- d=-(256-d);
- if(d==0)
- re[i][4*j+4]=0;
- }
- }
- int di[4]={0,0,1,-1};
- int dj[4]={1,-1,0,0};
- int nrzona=2,maxim=0,d1[100],p1=20,p2=20,ne=0;
- for(i=0;i<100;i++){
- d1[i]=0;
- }
- for(i = 0; i < n; i++)
- {
- for(j = 0; j < n; j++)
- {
- if(re[i][j]==0)
- {
- nrzona++;
- algFill(i,j,re,d1,nrzona,n);
- if(maxim < d1[nrzona]){
- maxim = d1[nrzona];
- ne=nrzona;
- }
- }
- }
- }
- for(i = 0; i < n; i++)
- {
- for(j = 0; j < 56; j++)
- {if(re[i][j]==ne){
- if(i<p1 || (p1==i && p2>j)){
- p1=i;
- p2=j;
- }
- }
- }
- }
- printf("task 3\n");
- printf("%d %d %d",maxim,p1,p2);
- */
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement