建民打卡日记5.8

发布时间 2023-05-08 18:11:10作者: cor0000

一、问题描述

 

在 MMORPG《最终幻想14》的副本“乐欲之所瓯博讷修道院”里,BOSS 机工士姆斯塔迪奥将会接受玩家的挑战。 你需要处理这个副本其中的一个机制:N×M 大小的地图被拆分为了 N×M 个 1×1 的格子,BOSS 会选择若干行或/及若干列释放技能,玩家不能站在释放技能的方格上,否则就会被击中而失败。 给定 BOSS 所有释放技能的行或列信息,请你计算出最后有多少个格子是安全的。

 

二、流程设计

 

建立一共二维数组,全赋值为0,然后攻击哪行(列)就把那行(列)的值全变成1,最后再统计 0 的个数

 

三、代码实现

 

 

#include<iostream>
using namespace std;
int main(){
    int n,m,q;
    cin>>n>>m>>q;
    int a[n+1][m+1]={0};
    while(q){
        int t,c;
        cin>>t>>c;
        if(t==0){
            for(int i=1;i<=m;i++)
                a[c][i]=1;
        }
        else{
            for(int i=1;i<=n;i++)
                a[i][c]=1;
        }
        q--;
    }
    int cnt=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(a[i][j]==0)
                cnt++;
        }
    }
    cout<<cnt;
}