L1-087:机工士姆斯塔迪奥

发布时间:2024年01月07日

题目描述

在 MMORPG《最终幻想14》的副本“乐欲之所瓯博讷修道院”里,BOSS 机工士姆斯塔迪奥将会接受玩家的挑战。

你需要处理这个副本其中的一个机制:N×M?大小的地图被拆分为了?N×M?个?1×1?的格子,BOSS 会选择若干行或/及若干列释放技能,玩家不能站在释放技能的方格上,否则就会被击中而失败。

给定 BOSS 所有释放技能的行或列信息,请你计算出最后有多少个格子是安全的。


输入格式:

输入第一行是三个整数?N,M,Q?(1≤N×M≤105,0≤Q≤1000),表示地图为?N?行?M?列大小以及选择的行/列数量。

接下来?Q?行,每行两个数?Ti?,Ci?,其中?Ti?=0?表示 BOSS 选择的是一整行,Ti?=1?表示选择的是一整列,Ci??为选择的行号/列号。行和列的编号均从 1 开始。


输出格式:

输出一个数,表示安全格子的数量。


输入样例:

5 5 3
0 2
0 4
1 3

输出样例:

12

分析

采用区间消除即可

程序代码

#include<stdio.h>
int main(){
	int N,M,Q;
	scanf("%d %d %d",&N,&M,&Q);
	int a[N][M];
	for(int i=0;i<N;i++){
		for(int j=0;j<M;j++){
			a[i][j]=1;
		}
	}
	int T,C;
	for(int i=0;i<Q;i++){
		scanf("%d %d",&T,&C);
		if(T==0){
			for(int j=0;j<M;j++){
				a[C-1][j]=0;
			}
		}
		if(T==1){
			for(int i=0;i<N;i++){
				a[i][C-1]=0;
			}
		}
    }
	int count=0;
	for(int i=0;i<N;i++){
		for(int j=0;j<M;j++){
			if(a[i][j]==1)
			count++;
		}
	}
	printf("%d",count);
	return 0;
}

运行结果

文章来源:https://blog.csdn.net/2301_76828807/article/details/135436151
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。