算法題_幸運星

題目:
在這裏插入圖片描述

在這裏插入圖片描述

接下來我們用C++進行編程:

#include <iostream>
#include <algorithm>
using namespace std;
const int maxn = 2e3+10;
int map[maxn][maxn];
int xmax[maxn];
int xmin[maxn];
int ymax[maxn];
int ymin[maxn];
void init()
{
    for(int i = 0;i<maxn;++i){
        xmax[i] = -1;
        ymax[i] = -1;
    }
    for(int i = 0;i<maxn;++i){
        xmin[i] = maxn;
        ymin[i] = maxn;
    }
    for(int i = 0;i<maxn;++i){
        for(int j = 0 ;j<maxn;++j){
            map[i][j] = 0;
        }
    }
}
int judge(){
    int ans  = 0;
    for(int i = 2;i < maxn-1;++i){
        for(int j = 2;j<maxn-1;++j){
            if(map[i][j] == 1){
                if(i<ymax[j] && i>ymin[j] && j<xmax[i] && j>xmin[i]){
                    ans++;
                }
            }
        }
    }
    return ans ;
}
int main()
{
    int n;
    int x,y;
    while(cin>>n){
        init();
        for(int i =0;i<n;++i){
            cin>>x>>y;
            x+=1002;
            y+=1002; 
            xmax[x] = xmax[x] >y?xmax[x] :y;
            xmin[x] = xmin[x] <y?xmin[x] :y;
            ymax[y] = ymax[y] >x?ymax[y] :x;
            ymin[y] = ymin[y] <x?ymin[y] :x;
            map[x][y] = 1;
        }
        cout<<judge()<<endl;
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章