Advertisement
a53

puncte3

a53
Mar 7th, 2018
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. #include <cstdio>
  2. #define M 1001
  3.  
  4. int main()
  5. {
  6. long int n,i,j,k,xs[M],ys[M],xd[M],yd[M],x0,y0,x1,y1;
  7. long np=0;
  8. FILE *fi,*fo;
  9. for(i=0;i<M;++i)
  10. xs[i]=ys[i]=M+1,xd[i]=yd[i]=-1;
  11. fi=fopen("puncte3.in","rt");
  12. fscanf(fi,"%d",&n);
  13. for(i=0;i<n;++i)
  14. {
  15. fscanf(fi,"%d %d",&j,&k);
  16. if(j<xs[k])
  17. xs[k]=j;
  18. if(j>xd[k])
  19. xd[k]=j;
  20. if(k<ys[j])
  21. ys[j]=k;
  22. if(k>yd[j])
  23. yd[j]=k;
  24. }
  25. i=0;
  26. while(xd[i]<0)
  27. i++;
  28. y0=i;
  29. i=M-1;
  30. while(xd[i]<0)
  31. i--;
  32. y1=i;
  33. i=0;
  34. while(yd[i]<0)
  35. i++;
  36. x0=i;
  37. i=M-1;
  38. while(yd[i]<0)
  39. i--;
  40. x1=i;
  41. fclose(fi);
  42. do
  43. {
  44. k=0;
  45. for(i=x0;i<=x1;++i)
  46. for(j=ys[i];j<=yd[i];++j)
  47. {
  48. if(i<xs[j])
  49. xs[j]=i,k=1;
  50. if(i>xd[j])
  51. xd[j]=i,k=1;
  52. }
  53. for(j=y0;j<=y1;++j)
  54. for(i=xs[j];i<=xd[j];++i)
  55. {
  56. if(j<ys[i])
  57. ys[i]=j,k=1;
  58. if(j>yd[i])
  59. yd[i]=j,k=1;
  60. }
  61. } while(k);
  62. for(j=y0;j<=y1;++j)
  63. if(xd[j]>=0)
  64. np+=(xd[j]-xs[j]+1);
  65. fo=fopen("puncte3.out","wt");
  66. fprintf(fo,"%ld\n",np);
  67. fclose(fo);
  68. return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement