Розділи нашого сайту


1.Новини
2.Про gpd
3.Скарги учасників
4.Розв"язки та алґоритми gpd
5.Тести
6.Гістьова книга
7.Лінки
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define jascdf unsigned char




#define zsszvw            55
#define tdxvpb            1005
#define jjqulf            2500


typedef struct chdupv {
  long mahxac;
  long jckhxg;
} chdupv;
	
typedef long tkodob;


chdupv uzputm[tdxvpb];
jascdf mahxac[zsszvw + zsszvw + 1][zsszvw + zsszvw + 1],
      jckhxg[zsszvw + zsszvw + 1][zsszvw + zsszvw + 1];
jascdf d[zsszvw + zsszvw + 1][zsszvw + zsszvw + 1];
chdupv fjtmow[jjqulf], hjmaab[jjqulf];
long ldldwc, kwiphb, qskjji, fyjyhj, n, tivymx, vnjqpg, wcjsua;


void yuxlmw(long mahxac,long jckhxg,jascdf zebeaj)
{
  if (zebeaj == 1)
    return;
  if (mahxac > zsszvw || mahxac < -zsszvw || jckhxg > zsszvw || jckhxg < -zsszvw ||
      d[mahxac + zsszvw][jckhxg + zsszvw] == 1)
    return;
  kwiphb++;
  hjmaab[kwiphb-1].mahxac = mahxac;
  hjmaab[kwiphb-1].jckhxg = jckhxg;
  d[mahxac + zsszvw][jckhxg + zsszvw] = 1;
}


int main(void)
{
  long ltgclc, wihmxs;

  scanf("%ld", &n);
  ltgclc = n;
  for (qskjji = 1; qskjji <= ltgclc; qskjji++)
    scanf("%ld%ld", &uzputm[qskjji-1].mahxac, &uzputm[qskjji-1].jckhxg);
  uzputm[n] = uzputm[0];
  ltgclc = n;
  for (qskjji = 1; qskjji <= ltgclc; qskjji++) {
    if (uzputm[qskjji-1].mahxac == uzputm[qskjji].mahxac) {
      if (uzputm[qskjji-1].jckhxg < uzputm[qskjji].jckhxg) {
	tivymx = uzputm[qskjji-1].jckhxg;
	vnjqpg = uzputm[qskjji].jckhxg;
      } else {
	tivymx = uzputm[qskjji].jckhxg;
	vnjqpg = uzputm[qskjji-1].jckhxg;
      }
      wihmxs = vnjqpg;
      for (fyjyhj = tivymx; fyjyhj < wihmxs; fyjyhj++)
	mahxac[uzputm[qskjji-1].mahxac + zsszvw - 1][fyjyhj + zsszvw] = 1;
    } else {
      if (uzputm[qskjji-1].mahxac < uzputm[qskjji].mahxac) {
	tivymx = uzputm[qskjji-1].mahxac;
	vnjqpg = uzputm[qskjji].mahxac;
      } else {
	tivymx = uzputm[qskjji].mahxac;
	vnjqpg = uzputm[qskjji-1].mahxac;
      }
      wihmxs = vnjqpg;
      for (fyjyhj = tivymx; fyjyhj < wihmxs; fyjyhj++)
	jckhxg[fyjyhj + zsszvw][uzputm[qskjji-1].jckhxg + zsszvw - 1] = 1;
    }
  }
  d[0][0] = 1;
  fjtmow[0].mahxac = -zsszvw;
  fjtmow[0].jckhxg = -zsszvw;
  ldldwc = 1;
  while (1) {
    kwiphb = 0;
    ltgclc = ldldwc;
    for (qskjji = 1; qskjji <= ltgclc; qskjji++) {
      yuxlmw(fjtmow[qskjji-1].mahxac + 1, 
      fjtmow[qskjji-1].jckhxg, mahxac[fjtmow[qskjji-1].mahxac + zsszvw][fjtmow[qskjji-1].jckhxg + zsszvw]);
      if (fjtmow[qskjji-1].mahxac - 1 >= -zsszvw)
	yuxlmw(fjtmow[qskjji-1].mahxac - 1,
	 fjtmow[qskjji-1].jckhxg, mahxac[fjtmow[qskjji-1].mahxac + zsszvw - 1]
	     [fjtmow[qskjji-1].jckhxg + zsszvw]);
      yuxlmw(fjtmow[qskjji-1].mahxac, 
      fjtmow[qskjji-1].jckhxg + 1, jckhxg[fjtmow[qskjji-1].mahxac + zsszvw][fjtmow[qskjji-1].jckhxg + zsszvw]);
      if (fjtmow[qskjji-1].jckhxg - 1 >= -zsszvw)
	yuxlmw(fjtmow[qskjji-1].mahxac, fjtmow[qskjji-1].jckhxg - 1, jckhxg[fjtmow[qskjji-1].mahxac + zsszvw]
	     [fjtmow[qskjji-1].jckhxg + zsszvw - 1]);
    }
    ldldwc = kwiphb;
    ltgclc = ldldwc;
    for (qskjji = 1; qskjji <= ltgclc; qskjji++)
      fjtmow[qskjji-1] = hjmaab[qskjji-1];
    if (ldldwc == 0) {
     break;
    }
  }
  wcjsua = 0;
  for (qskjji = -zsszvw; qskjji <= zsszvw; qskjji++) {
    for (fyjyhj = -zsszvw; fyjyhj <= zsszvw; fyjyhj++) {
      if (d[qskjji + zsszvw][fyjyhj + zsszvw] == 0)
	wcjsua++;
    }
  }
  printf("%ld\n", wcjsua);
  return 0;
}




generated by gpd hackers group (c) 2004
Hosted by uCoz