【题解】Luogu p2356 【弹珠游戏】

題面都說了這是一道簽到題。

我也就懶得用貪心了,直接打了個n方的暴力,不出意外能一波AC

直接枚舉每一個0,然後算出所在0的殺人數,然後壓入vector中

最後對這個vector從大到小排序,第一個就是答案。

const int L = 1000 + 6;
int map[L][L];

bool cmp(int a,int b){
    return a > b ? true : false;
}

int main(){
    std::vector<int> ans;
    int n;
    scanf("%d",&n);

    for(int i = 0;i < n;i++){
        for(int j = 0;j < n;j++){
            scanf("%d",&map[i][j]);
        }
    }

    bool running = false; 
    int gg = 0;
    for(int i = 0;i < n;i++){
        for(int j = 0;j < n;j++){
            if(map[i][j] == 0){
                for(int k = 0;k < n;k++){
                    gg += map[i][k];
                    gg += map[k][j];
                }
                ans.push_back(gg);
                gg = 0;
                running = true;
            }
        }
    }

    if(!running){
        printf("Bad Game!");
        return 0;
    }

    std::sort(ans.begin(),ans.end(),cmp);

    printf("%d",ans[0]);

    return 0;
}