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. Project Euler 363 Bézier Curves(几何+二分)

    题目链接: https://projecteuler.net/problem=363 题目: A cubic Bézier curve is defined by four points: \(P_0 ...

  2. 并发,three

    引言 很久没有跟大家再聊聊并发了,今天LZ闲来无事,跟大家再聊聊并发.由于时间过去的有点久,因此LZ就不按照常理出牌了,只是把自己的理解记录在此,如果各位猿友觉得有所收获,就点个推荐或者留言激励下LZ ...

  3. AJAX有关的请求协议及HTTP报文

    URI:统一资源标识符 URI=URL+URNURL:统一资源定位符URN:统一资源名称 上边的图片编号对应下边的编号说明: 1.HTTP(占90%市场)/HTTPS/FTP 传输协议(可以理解为快递 ...

  4. postman和fiddler的基本使用

    本文转自:https://www.cnblogs.com/qq909283/p/6826578.html 写在前面:本文主要的章节规划: 1.什么是接口测试 另外,有的时候会直接调用别的公司的接口,比 ...

  5. Loadrunner--集合点

    集合点的意思是等到特定的用户数后再一起执行某个操作,比如一起保存,一起提交(我们通常意义上的并发数并不是指一起提交或者一起保存),一般情况下使用不到集合点,不过,订票系统或者促销类需要用到,比如说某个 ...

  6. IOS日期转为今天昨天形式

    近期项目有类似QQ空间展示动态的UI,模仿了QQ空间的时间显示.在此记录,以备查阅. 这是QQ空间的ui: 时间显示为: 1.今天-->今天 xx:xx(今天 15:39) 2.昨天--> ...

  7. CComboBox自动匹配

    void CLoadPhotoDlg::OnCbnEditchangeCombo1() {  // TODO: 在此添加控件通知处理程序代码  UpdateData(TRUE);  CComboBox ...

  8. QMap 的增删改查

    map 是一种数据容器,它提供一种由key 到 value 的映射.map 的key 是唯一的, 也是有序的.map 通常由近似平衡的红黑树来实现.key 的有序性,使得插入,查找节点比较有效.map ...

  9. QQ号快速登录漏洞及被盗原理

    web安全:QQ号快速登录漏洞及被盗原理   为什么你什么都没干,但QQ空间中却发了很多小广告?也许你的QQ账号已经被盗.本文将讲解一个QQ的快速登录的漏洞. 我前阵子在论坛上看到一个QQ的快速登录的 ...

  10. 我的前端规范——CSS篇

    相关文章 简书原文:https://www.jianshu.com/p/e87bfd27ff59 我的前端规范——开篇:http://www.cnblogs.com/shcrk/p/9271561.h ...