24h購物| | PChome| 登入
2009-04-26 17:22:38| 人氣416| 回應0 | 上一篇 | 下一篇

97高市資訊學科能力競賽 3. 矩形的內部與外部

推薦 0 收藏 0 轉貼0 訂閱站台

作法:沒什麼特殊的作法
想法:

1.首先將右上左下調整好並存入陣列
2.之後也將邊長存入陣列
3.逐一比對右上左下的座標 x1<=x<=x2 y1<=y<=y2 如果符合就把之前存的邊長相乘加上去

/************************************************************/

#include<stdio.h>
#include<stdlib.h>
main()
{
 int n,m,a,b,c;
 while(scanf("%d %d",&n,&m)==2)
   {
    int area[32][6];
     for(a=0;a<n;a++)
       {
         int x1,x2,y1,y2;
         scanf("%d %d %d %d",&x1,&y1,&x2,&y2); /*將右上 左下調整好*/
          if(x1>x2) {area[a][0]=x1;area[a][1]=x2;}
          else  {area[a][0]=x2;area[a][1]=x1;}
          if(y1>y2) {area[a][2]=y1;area[a][3]=y2;}
          else  {area[a][2]=y2;area[a][3]=y1;}   
         area[a][4]=area[a][0]-area[a][1];
         area[a][5]=area[a][2]-area[a][3];
       }
     for(a=0;a<m;a++)
       {
         int x,y;
         long long int ans=0;
         scanf("%d %d",&x,&y);
          for(b=0;b<n;b++)
           if(area[b][1]<=x&&area[b][0]>=x&&y<=area[b][2]&&y>=area[b][3])
            ans+=area[b][4]*area[b][5];
          printf("%lld\n",ans);
       }
   }
 return 0;
}

台長: 來源不明
人氣(416) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: 資訊競賽 |
此分類下一篇:IOI研習營模考1-1新錢錢
此分類上一篇:95全國資訊學科能力決賽 4. 靈犬尋寶

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文