Submission #1174697


Source Code Expand

#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
#include <queue>
#include <algorithm>
#include <utility>
#include <cmath>
#include <map>
#include <set>
#include <stack>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <random>
#include <deque>

#define INF_LL 1e18
#define INF 1e9

#define REP(i, n) for(int i = 0;i < (n);i++)
#define FOR(i, a, b) for(int i = (a);i < (b);i++)
#define all(x) x.begin(),x.end()

using namespace std;

using ll = long long;
using PII = pair<int, int>;
using PLL = pair<ll, ll>;

const ll MOD = 1e9+7;

int dx[9] = {-1, 1, 0, 0, -1, -1, 1, 1, 0};
int dy[9] = {0, 0, -1, 1, -1, 1, -1, 1, 0};

template<typename T>
void chmax(T &a, T &b){
	a = max(a, b);
}

template<typename T>
void chmin(T &a, T &b){
	a = min(a, b);
}

class Union_find{
private:
	vector<int> par;
	vector<int> rank;
	int n;

public:
	Union_find(int a){
		n = a;
		for(int i = 0;i < n;i++){
			par.push_back(i);
			rank.push_back(0);
		}
	}

	int find(int x){
		if(par[x] == x){
			return x;
		}else{
			return par[x] = find(par[x]);
		}
	}

	void unite(int x, int y){
		x = find(x);
		y = find(y);
		if(x == y) return;

		if(rank[x] < rank[y]){
			par[x] = y;
		}else{
			par[y] = x;
			if(rank[x] == rank[y]) rank[x]++;
		}
	}

	bool same(int x, int y){
		return find(x) == find(y);
	}
};

class RMQ{
	int n;
	vector<int> dat;
public:
	RMQ(int n_){
		n = 1;
		while(n < n_) n *= 2;
		REP(i, n*2-1){
			dat.push_back(INF);
		}
	}

	void update(int x, int i){
		i += n-1;
		dat[i] = x;
		while(i > 0){
			i = (i-1)/2;
			dat[i] = min(dat[i*2+1], dat[i*2+2]);
		}
	}

	int query(int a, int b, int l, int r, int x){
		if(a <= l && r <= b) return dat[x];
		if(r <= a || b <= l) return INF;

		int res = INF;
		res = min(query(a, b, l, (l+r)/2, x*2+1), query(a, b, (l+r)/2, r, x*2+2));
		return res;
	}
	int query(int a, int b){
		return query(a, b, 0, n, 0);
	}
};

const ll mod = 1e9+7;

int main(void){
	int r, c, d;
	int a[1010][1010];
	int need[1010][1010] = {};
	cin >> r >> c >> d;
	REP(i, r){
		REP(j, c){
			cin >> a[i][j];
			need[i][j] = INF;
		}
	}
	need[0][0] = 2; need[1][0] = 1; need[0][1] = 1;
	REP(i, r-1){
		REP(j, c-1){
			need[i+1][j] = min(need[i+1][j], need[i][j]+1);
			need[i][j+1] = min(need[i][j+1], need[i][j]+1);
		}
	}
	need[r-1][c-1] = min(need[r-2][c-1], need[r-1][c-2]);
	int res = 0;
	REP(i, r){
		REP(j, c){
			if(need[i][j] <= d && need[i][j]%2 == d%2){
				res = max(res, a[i][j]);
			}
		}
	}
	cout << res << endl;
}

Submission Info

Submission Time
Task B - 謎の人物X
User maze1230
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2641 Byte
Status WA
Exec Time 266 ms
Memory 8192 KB

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 0 / 60 0 / 40
Status
AC × 3
AC × 17
WA × 1
AC × 32
WA × 1
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt
Subtask2 sample_01.txt, sample_02.txt, sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt
Case Name Status Exec Time Memory
sample_01.txt AC 3 ms 5120 KB
sample_02.txt AC 3 ms 4608 KB
sample_03.txt AC 3 ms 6144 KB
subtask1_01.txt WA 3 ms 5504 KB
subtask1_02.txt AC 3 ms 4736 KB
subtask1_03.txt AC 3 ms 5632 KB
subtask1_04.txt AC 5 ms 5760 KB
subtask1_05.txt AC 3 ms 6016 KB
subtask1_06.txt AC 4 ms 5248 KB
subtask1_07.txt AC 5 ms 5888 KB
subtask1_08.txt AC 5 ms 5248 KB
subtask1_09.txt AC 6 ms 8192 KB
subtask1_10.txt AC 6 ms 5504 KB
subtask1_11.txt AC 6 ms 5120 KB
subtask1_12.txt AC 5 ms 4992 KB
subtask1_13.txt AC 6 ms 5504 KB
subtask1_14.txt AC 6 ms 5504 KB
subtask1_15.txt AC 5 ms 5120 KB
subtask2_01.txt AC 3 ms 4608 KB
subtask2_02.txt AC 4 ms 8192 KB
subtask2_03.txt AC 86 ms 8192 KB
subtask2_04.txt AC 4 ms 4992 KB
subtask2_05.txt AC 13 ms 5120 KB
subtask2_06.txt AC 46 ms 6144 KB
subtask2_07.txt AC 181 ms 8192 KB
subtask2_08.txt AC 264 ms 8192 KB
subtask2_09.txt AC 263 ms 8192 KB
subtask2_10.txt AC 260 ms 8192 KB
subtask2_11.txt AC 228 ms 8192 KB
subtask2_12.txt AC 262 ms 8192 KB
subtask2_13.txt AC 266 ms 8192 KB
subtask2_14.txt AC 262 ms 8192 KB
subtask2_15.txt AC 266 ms 8192 KB