QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#415223 | #6515. Path Planning | qwedc001# | WA | 74ms | 3604kb | C++23 | 1.8kb | 2024-05-20 16:09:11 | 2024-05-20 16:09:11 |
Judging History
answer
#include <bits/stdc++.h>
#define PII pair<int, int>
#define VI vector<int>
#define x first
#define y second
using namespace std;
void solve()
{
int n, m;
cin >> n >> m;
vector a(n + 1, VI(m + 1));
map<int, PII> mp;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
cin >> a[i][j];
mp[a[i][j]] = {i, j};
}
}
int ans = -1;
set<PII> st;
for (int mex = 0; mex <= n * m; mex++)
{
auto [x, y] = mp[mex];
if (st.size() <= 1)
{
st.insert({x, y});
continue;
}
auto q = st.lower_bound({x, y});
if (q == st.end())
{
q = prev(q);
auto [l, r] = *q;
if (x >= l && y >= r)
{
st.insert({x, y});
}
else
{
ans = mex;
break;
}
}
else if (q == st.begin())
{
auto [l, r] = *q;
if (x <= l && y <= r)
{
st.insert({x, y});
}
else
{
ans = mex;
break;
}
}
else
{
auto q0 = prev(q);
auto [l1, r1] = *q0;
auto [l2, r2] = *q;
if (x >= l1 && y >= r1 && x <= l2 && y <= r2)
{
st.insert({x, y});
}
else
{
ans = mex;
break;
}
}
}
if (ans == -1)
{
cout << n * m << "\n";
}
else
cout << ans << "\n";
}
signed main()
{
int T;
cin >> T;
while (T--)
solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3540kb
input:
2 2 3 1 2 4 3 0 5 1 5 1 3 0 4 2
output:
3 5
result:
ok 2 number(s): "3 5"
Test #2:
score: -100
Wrong Answer
time: 74ms
memory: 3604kb
input:
10000 2 9 4 0 3 5 2 7 16 11 12 9 13 14 17 10 8 15 1 6 4 8 19 23 22 13 29 4 17 26 30 6 25 3 15 24 18 14 12 8 7 9 27 5 0 10 11 16 31 20 2 28 1 21 1 6 3 2 0 1 4 5 2 3 4 2 0 3 5 1 5 1 4 0 3 2 1 1 3 1 0 2 8 10 9 50 8 0 41 57 60 30 23 65 64 21 36 12 10 5 58 19 38 67 71 52 45 17 77 4 59 51 22 25 56 49 79 2...
output:
9 2 6 3 5 3 14 13 5 9 5 7 6 9 7 4 6 7 13 9 10 9 6 4 5 7 4 2 10 4 18 5 12 3 7 6 9 2 1 5 6 10 8 4 2 5 2 5 7 13 6 10 2 10 3 6 9 8 3 10 2 3 3 5 8 4 7 7 7 8 8 6 6 5 3 7 7 13 3 3 6 5 4 3 10 5 12 7 2 11 6 7 5 10 9 5 3 10 2 5 3 8 7 10 5 4 10 4 6 5 9 4 10 6 3 5 4 4 7 4 8 3 12 5 4 5 8 6 8 3 7 9 3 6 12 4 6 6 6...
result:
wrong answer 24th numbers differ - expected: '1', found: '4'