time limit per test4 seconds

memory limit per test512 megabytes

inputstandard input

outputstandard output

The farmer Polycarp has a warehouse with hay, which can be represented as an n × m rectangular table, where n is the number of rows, and m is the number of columns in the table. Each cell of the table contains a haystack. The height in meters of the hay located in the i-th row and the j-th column is equal to an integer ai, j and coincides with the number of cubic meters of hay in the haystack, because all cells have the size of the base 1 × 1. Polycarp has decided to tidy up in the warehouse by removing an arbitrary integer amount of cubic meters of hay from the top of each stack. You can take different amounts of hay from different haystacks. Besides, it is allowed not to touch a stack at all, or, on the contrary, to remove it completely. If a stack is completely removed, the corresponding cell becomes empty and no longer contains the stack.

Polycarp wants the following requirements to hold after the reorganization:

the total amount of hay remaining in the warehouse must be equal to k,

the heights of all stacks (i.e., cells containing a non-zero amount of hay) should be the same,

the height of at least one stack must remain the same as it was,

for the stability of the remaining structure all the stacks should form one connected region.

The two stacks are considered adjacent if they share a side in the table. The area is called connected if from any of the stack in the area you can get to any other stack in this area, moving only to adjacent stacks. In this case two adjacent stacks necessarily belong to the same area.

Help Polycarp complete this challenging task or inform that it is impossible.

Input

The first line of the input contains three integers n, m (1 ≤ n, m ≤ 1000) and k (1 ≤ k ≤ 1018) — the number of rows and columns of the rectangular table where heaps of hay are lain and the required total number cubic meters of hay after the reorganization.

Then n lines follow, each containing m positive integers ai, j (1 ≤ ai, j ≤ 109), where ai, j is equal to the number of cubic meters of hay making the hay stack on the i-th row and j-th column of the table.

Output

In the first line print “YES” (without quotes), if Polycarpus can perform the reorganisation and “NO” (without quotes) otherwise. If the answer is “YES” (without quotes), then in next n lines print m numbers — the heights of the remaining hay stacks. All the remaining non-zero values should be equal, represent a connected area and at least one of these values shouldn’t be altered.

If there are multiple answers, print any of them.

Examples

input

2 3 35

10 4 9

9 9 7

output

YES

7 0 7

7 7 7

input

4 4 50

5 9 1 1

5 1 1 5

5 1 5 5

5 5 7 1

output

YES

5 5 0 0

5 0 0 5

5 0 5 5

5 5 5 0

input

2 4 12

1 1 3 1

1 6 2 4

output

NO

Note

In the first sample non-zero values make up a connected area, their values do not exceed the initial heights of hay stacks. All the non-zero values equal 7, and their number is 5, so the total volume of the remaining hay equals the required value k = 7·5 = 35. At that the stack that is on the second line and third row remained unaltered.

【题解】



有一个数字不能变?

给的n*m矩阵中又全都是大于0的数字;

则最后的结果肯定是全都是那个不变的数字;

则枚举那个不变的数字是啥;

那个数字首先肯定要能整除k;

则k%a[i][j]==0

(1e17的因子也才300多个);

然后从那个点开始bfs(floodfill);遇到小于ai,j的则不行->只能减少数字;

然后遇到大于的则标记为访问过;

之后如果找到了答案就把那个访问过的数字直接改成枚举得到的aij;

其他数字改为0;

有两个剪枝:

1.k/a[i][j]>n*m直接剪掉;

2.在bfs的时候如果发现和bfs的起始点aij数字一样的则标记下次不要再从那个点开始了;->一个数的因子是有限的。这样就防止了它整张图都是k的因子;

#include <cstdio>
#include <cmath>
#include <set>
#include <map>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
#include <vector>
#include <stack>
#include <string>
#define LL long long using namespace std; const int MAXN = 1010;
const int dx[5] = {0,1,-1,0,0};
const int dy[5] = {0,0,0,-1,1}; int n,m;
LL k,need;
int a[MAXN][MAXN];
bool can[MAXN][MAXN],vis[MAXN][MAXN];
queue < pair<int,int> >dl; void input_LL(LL &r)
{
r = 0;
char t = getchar();
while (!isdigit(t)) t = getchar();
LL sign = 1;
if (t == '-')sign = -1;
while (!isdigit(t)) t = getchar();
while (isdigit(t)) r = r * 10 + t - '0', t = getchar();
r = r*sign;
} void input_int(int &r)
{
r = 0;
char t = getchar();
while (!isdigit(t)) t = getchar();
int sign = 1;
if (t == '-')sign = -1;
while (!isdigit(t)) t = getchar();
while (isdigit(t)) r = r * 10 + t - '0', t = getchar();
r = r*sign;
} bool bfs(int x,int y)
{
for (int i = 1;i <= n;i++)
for (int j = 1;j <= m;j++)
vis[i][j] = false;
dl.push(make_pair(x,y));
LL now = 1;
vis[x][y] = true;
if (now == need)
return true;
while (!dl.empty())
{
int x0 = dl.front().first,y0 = dl.front().second;
dl.pop();
for (int i = 1;i <= 4;i++)
{
int x1 = x0+dx[i],y1 = y0+dy[i];
if (x1<=0 || x1>=n+1 || y1<=0 || y1>=m+1) continue;
if (!vis[x1][y1])
{
if (a[x1][y1]<a[x][y]) continue;
if (a[x1][y1] == a[x][y]) can[x1][y1] = false;
vis[x1][y1] = true;
now++;
if (now == need)
return true;
dl.push(make_pair(x1,y1));
}
}
}
return false;
} int main()
{
//freopen("F:\\rush.txt", "r", stdin);
input_int(n);input_int(m);input_LL(k);
for (int i = 1;i <= n;i++)
for (int j = 1;j <= m;j++)
input_int(a[i][j]),can[i][j] = true;
for (int i = 1;i <= n;i++)
for (int j = 1;j <= m;j++)
if (can[i][j] && !(k%a[i][j]))
{
need = k/a[i][j];
if (need >n*m)
continue;
if (bfs(i,j))
{
puts("YES");
for (int ii = 1;ii <= n;ii++)
{
for (int jj = 1;jj <= m;jj++)
if (vis[ii][jj])
printf("%d%c",a[i][j],jj==m?'\n':' ');
else
printf("0%c",jj==m?'\n':' ');
}
return 0;
}
}
puts("NO");
return 0;
}

【17.69%】【codeforces 659F】Polycarp and Hay的更多相关文章

  1. codeforces 659F F. Polycarp and Hay(并查集+bfs)

    题目链接: F. Polycarp and Hay time limit per test 4 seconds memory limit per test 512 megabytes input st ...

  2. 【 BowWow and the Timetable CodeForces - 1204A 】【思维】

    题目链接 可以发现 十进制4 对应 二进制100 十进制16 对应 二进制10000 十进制64 对应 二进制1000000 可以发现每多两个零,4的次幂就增加1. 用string读入题目给定的二进制 ...

  3. 【24.17%】【codeforces 721D】Maxim and Array

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  4. 【40.17%】【codeforces 569B】Inventory

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  5. 【17.07%】【codeforces 583D】Once Again...

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  6. 【codeforces】【比赛题解】#855 Codefest 17

    神秘比赛,以<哈利波特>为主题……有点难. C题我熬夜切终于是写出来了,可惜比赛结束了,气啊. 比赛链接:点我. [A]汤姆·里德尔的日记 题意: 哈利波特正在摧毁神秘人的分灵体(魂器). ...

  7. 【codeforces 514D】R2D2 and Droid Army

    [题目链接]:http://codeforces.com/contest/514/problem/D [题意] 给你每个机器人的m种属性p1..pm 然后r2d2每次可以选择m种属性中的一种,进行一次 ...

  8. 【codeforces 799D】Field expansion

    [题目链接]:http://codeforces.com/contest/799/problem/D [题意] 给你长方形的两条边h,w; 你每次可以从n个数字中选出一个数字x; 然后把h或w乘上x; ...

  9. 【77.78%】【codeforces 625C】K-special Tables

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

随机推荐

  1. amazeui学习笔记--css(HTML元素3)--表单Form

    amazeui学习笔记--css(HTML元素3)--表单Form 一.总结 1.form样式使用:在容器上添加 .am-form class,容器里的子元素才会应用 Amaze UI 定义的样式. ...

  2. numpy,scipy,pandas 和 matplotlib

    numpy,scipy,pandas 和 matplotlib 本文会介绍numpy,scipy,pandas 和 matplotlib 的安装,环境为Windows10. 一般情况下,如果安装了Py ...

  3. 截止频率-3db

    关于-3db截止频率 (2013-06-22 10:47:02) 转载▼   分类: 信号.电路 关于-3db截止频率 为什么当信号衰减了-3db的时候就算是截止频率了.这里面有什么高深的内涵.毕竟这 ...

  4. loadrunne-- Analysis 分析器

    本文转自:https://www.cnblogs.com/Chilam007/p/6445165.html Analysis简介 分析器就是对测试结果数据进行分析的组件,它是LR三大组件之一,保存着大 ...

  5. postman--基本使用1

    本文转自:http://blog.csdn.net/five3/article/details/53021084 HTTP的接口测试工具有很多,可以进行http请求的方式也有很多,但是可以直接拿来就用 ...

  6. 1、移动端 2、后台 3、 移动端,Web 端 4、 PC端

    移动端: 1.公众号:停开心 住总物业 2.app:  iso Android 停开心,住总停开心 后台:停开心智慧停车管理平台(所有的停车场) 移动端,Web端: 海投OA,公司OA PC端:收费软 ...

  7. 2、Python基本数据类型

    1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算: 5.成员运算: 基本数据类型 1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即- ...

  8. SiFive Unleashed启动

    SiFive Unleashed启动 请仔细参看SiFive官网的文档HiFive Unleashed 使用串口连接过程 连接好硬件(电源+USB) 尝试打开电源键,检测硬件能被识别 配置minico ...

  9. usart和uart 的区别

    摘自:https://blog.csdn.net/meic51/article/details/7714847 什么是同步和异步 转自https://blog.csdn.net/seashine_ya ...

  10. 解读AFNetworking中Demo的MVC

    Demo的下载地址:AFNetworking下载 打开Demo: 现实的功能.就是一个简易的微博timeline界面: 项目预览: 用到的第三方:AFNetworking 和 UIKit+AFNetw ...