Submission #38801254
Source Code Expand
//#include "bits/stdc++.h"
#define _USE_MATH_DEFINES
#include <iostream>
#include <sstream>
#include <iomanip>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <numeric>
#include <functional>
#include <utility>
#include <tuple>
#include <vector>
#include <string>
#include <list>
#include <set>
#include <unordered_set>
#include <map>
#include <unordered_map>
#include <queue>
#include <deque>
#include <stack>
#include <iterator>
#include <bitset>
#include <complex>
#include <limits>
#include <random>
#include<fstream>
#include<array>
#include<assert.h>
using namespace std;
#define rep(i,a,b) for(int i=(a), i##_len=(b);i<i##_len;i++)
#define rrep(i,a,b) for(int i=(b)-1;i>=(a);i--)
#define all(c) begin(c),end(c)
#define int ll
#define SZ(x) ((int)(x).size())
#define pb push_back
#define mp make_pair
typedef unsigned long long ull;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<ll, int> pli;
typedef pair<double, double> pdd;
typedef vector< vector<int> > mat;
template<class T> bool chmax(T &a, const T &b) { if (a < b) { a = b; return true; } return false; }
template<class T> bool chmin(T &a, const T &b) { if (b < a) { a = b; return true; } return false; }
const int INF = sizeof(int) == sizeof(long long) ? 0x3f3f3f3f3f3f3f3fLL : 0x3f3f3f3f;
//const int MOD = (int)1e9 + 7;
const int MOD = 998244353;
const double EPS = 1e-9;
struct P
{
int l, r, c;
P(int l = 0, int r = 0, int c = 0) :l(l), r(r), c(c) {}
bool operator<(const P& other)const
{
return c > other.c;
}
};
signed main()
{
cin.tie(0);
ios::sync_with_stdio(false);
int T;
cin >> T;
while (T--)
{
int N, M;
cin >> N >> M;
vector<int> C(N);
rep(i, 0, N)cin >> C[i];
vector<vector<int>> G(N);
rep(i, 0, M)
{
int u, v;
cin >> u >> v;
u--, v--;
G[u].push_back(v);
G[v].push_back(u);
}
vector<vector<int>> DP(N, vector<int>(N, INF));
DP[0][N - 1] = 0;
priority_queue<P> pq;
pq.push(P(0, N - 1, 0));
while (!pq.empty())
{
auto p = pq.top();
pq.pop();
if (DP[p.l][p.r] < p.c)continue;
for (auto le : G[p.l])for (auto re : G[p.r])
{
if (C[le] ^ C[re] == 0)continue;
if (chmin(DP[le][re], p.c + 1))
{
pq.push(P(le, re, DP[le][re]));
}
}
}
if (DP[N - 1][0] == INF)cout << -1 << endl;
else cout << DP[N - 1][0] << endl;
}
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Swap Places |
| User | aquel |
| Language | C++ (GCC 9.2.1) |
| Score | 500 |
| Code Size | 2540 Byte |
| Status | AC |
| Exec Time | 311 ms |
| Memory | 37788 KiB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:113:23: warning: suggest parentheses around comparison in operand of ‘^’ [-Wparentheses] 113 | if (C[le] ^ C[re] == 0)continue;
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt |
| All | 00_sample_00.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 01_small_06.txt, 01_small_07.txt, 01_small_08.txt, 01_small_09.txt, 01_small_10.txt, 01_small_11.txt, 01_small_12.txt, 01_small_13.txt, 01_small_14.txt, 01_small_15.txt, 01_small_16.txt, 01_small_17.txt, 01_small_18.txt, 01_small_19.txt, 01_small_20.txt, 01_small_21.txt, 01_small_22.txt, 01_small_23.txt, 01_small_24.txt, 01_small_25.txt, 01_small_26.txt, 01_small_27.txt, 01_small_28.txt, 01_small_29.txt, 01_small_30.txt, 01_small_31.txt, 02_tree_00.txt, 02_tree_01.txt, 02_tree_02.txt, 02_tree_03.txt, 02_tree_04.txt, 02_tree_05.txt, 03_path_00.txt, 03_path_01.txt, 03_path_02.txt, 03_path_03.txt, 04_dense_00.txt, 04_dense_01.txt, 04_dense_02.txt, 04_dense_03.txt, 05_sparse_00.txt, 05_sparse_01.txt, 05_sparse_02.txt, 05_sparse_03.txt, 06_large_00.txt, 06_large_01.txt, 06_large_02.txt, 06_large_03.txt, 06_large_04.txt, 06_large_05.txt, 06_large_06.txt, 06_large_07.txt, 06_large_08.txt, 06_large_09.txt, 07_bridge_connected_00.txt, 07_bridge_connected_01.txt, 07_bridge_connected_02.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 7 ms | 3456 KiB |
| 01_small_00.txt | AC | 3 ms | 3656 KiB |
| 01_small_01.txt | AC | 2 ms | 3656 KiB |
| 01_small_02.txt | AC | 3 ms | 3632 KiB |
| 01_small_03.txt | AC | 4 ms | 3580 KiB |
| 01_small_04.txt | AC | 4 ms | 3616 KiB |
| 01_small_05.txt | AC | 3 ms | 3584 KiB |
| 01_small_06.txt | AC | 3 ms | 3584 KiB |
| 01_small_07.txt | AC | 3 ms | 3544 KiB |
| 01_small_08.txt | AC | 6 ms | 3632 KiB |
| 01_small_09.txt | AC | 6 ms | 3660 KiB |
| 01_small_10.txt | AC | 5 ms | 3568 KiB |
| 01_small_11.txt | AC | 5 ms | 3600 KiB |
| 01_small_12.txt | AC | 3 ms | 3624 KiB |
| 01_small_13.txt | AC | 4 ms | 3532 KiB |
| 01_small_14.txt | AC | 5 ms | 3604 KiB |
| 01_small_15.txt | AC | 4 ms | 3632 KiB |
| 01_small_16.txt | AC | 4 ms | 3632 KiB |
| 01_small_17.txt | AC | 5 ms | 3588 KiB |
| 01_small_18.txt | AC | 6 ms | 3528 KiB |
| 01_small_19.txt | AC | 4 ms | 3528 KiB |
| 01_small_20.txt | AC | 6 ms | 3664 KiB |
| 01_small_21.txt | AC | 5 ms | 3528 KiB |
| 01_small_22.txt | AC | 8 ms | 3680 KiB |
| 01_small_23.txt | AC | 6 ms | 3720 KiB |
| 01_small_24.txt | AC | 10 ms | 3704 KiB |
| 01_small_25.txt | AC | 11 ms | 3728 KiB |
| 01_small_26.txt | AC | 9 ms | 3656 KiB |
| 01_small_27.txt | AC | 13 ms | 3580 KiB |
| 01_small_28.txt | AC | 9 ms | 3632 KiB |
| 01_small_29.txt | AC | 11 ms | 3716 KiB |
| 01_small_30.txt | AC | 11 ms | 3640 KiB |
| 01_small_31.txt | AC | 8 ms | 3648 KiB |
| 02_tree_00.txt | AC | 311 ms | 37788 KiB |
| 02_tree_01.txt | AC | 30 ms | 34556 KiB |
| 02_tree_02.txt | AC | 28 ms | 34592 KiB |
| 02_tree_03.txt | AC | 36 ms | 34844 KiB |
| 02_tree_04.txt | AC | 25 ms | 34532 KiB |
| 02_tree_05.txt | AC | 35 ms | 34816 KiB |
| 03_path_00.txt | AC | 247 ms | 34904 KiB |
| 03_path_01.txt | AC | 28 ms | 34588 KiB |
| 03_path_02.txt | AC | 28 ms | 34444 KiB |
| 03_path_03.txt | AC | 28 ms | 34592 KiB |
| 04_dense_00.txt | AC | 15 ms | 3688 KiB |
| 04_dense_01.txt | AC | 17 ms | 3732 KiB |
| 04_dense_02.txt | AC | 15 ms | 3684 KiB |
| 04_dense_03.txt | AC | 19 ms | 3752 KiB |
| 05_sparse_00.txt | AC | 130 ms | 36224 KiB |
| 05_sparse_01.txt | AC | 27 ms | 34620 KiB |
| 05_sparse_02.txt | AC | 25 ms | 34512 KiB |
| 05_sparse_03.txt | AC | 27 ms | 34620 KiB |
| 06_large_00.txt | AC | 162 ms | 34552 KiB |
| 06_large_01.txt | AC | 164 ms | 34452 KiB |
| 06_large_02.txt | AC | 160 ms | 34444 KiB |
| 06_large_03.txt | AC | 153 ms | 34584 KiB |
| 06_large_04.txt | AC | 161 ms | 34460 KiB |
| 06_large_05.txt | AC | 143 ms | 34556 KiB |
| 06_large_06.txt | AC | 153 ms | 34552 KiB |
| 06_large_07.txt | AC | 154 ms | 34500 KiB |
| 06_large_08.txt | AC | 148 ms | 34592 KiB |
| 06_large_09.txt | AC | 153 ms | 34552 KiB |
| 07_bridge_connected_00.txt | AC | 88 ms | 21048 KiB |
| 07_bridge_connected_01.txt | AC | 86 ms | 21276 KiB |
| 07_bridge_connected_02.txt | AC | 18 ms | 20888 KiB |