#include <bits/stdc++.h>
#define mp make_pair
#define X first
#define Y second
using namespace std;
typedef long long ll;
typedef pair <int, int> ii;
const int N = 5e5 + 1;
int n;
string a[2][N];
vector <int> adj[N * 2];
map <string, int> idx;
int cur, d[2 * N];
bool noSolution;
void readInput(){
cin >> n;
for(int i = 1; i <= n; i++)
cin >> a[0][i];
for(int i = 1; i <= n; i++)
cin >> a[1][i];
}
void dfs(int u, int val){
if (d[u] == val)
return;
if (d[u] != 0 && d[u] != val){
noSolution = 1;
return;
}
d[u] = val;
for(int v : adj[u])
dfs(v, val);
}
void solve(){
for(int i = 0; i < 2; i++)
for(int j = 1; j <= n; j++){
if (isdigit(a[i][j][0]))
continue;
if (idx[a[i][j]] == 0)
idx[a[i][j]] = ++cur;
}
for(int i = 1; i <= n; i++)
if (!isdigit(a[0][i][0]) && !isdigit(a[1][i][0])){
int u = idx[a[0][i]], v = idx[a[1][i]];
adj[u].push_back(v);
adj[v].push_back(u);
}
for(int i = 1; i <= n; i++)
if (isdigit(a[0][i][0]) && !isdigit(a[1][i][0]))
dfs(idx[a[1][i]], atoi(a[0][i].c_str()));
else if (!isdigit(a[0][i][0]) && isdigit(a[1][i][0]))
dfs(idx[a[0][i]], atoi(a[1][i].c_str()));
for(int i = 1; i <= n; i++)
if (isdigit(a[0][i][0]) && isdigit(a[1][i][0]) && a[0][i] != a[1][i])
noSolution = 1;
cout << (noSolution? "NE" : "DA");
}
int main(){
readInput();
solve();
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
34 ms |
55168 KB |
Output is correct |
2 |
Correct |
33 ms |
55172 KB |
Output is correct |
3 |
Correct |
34 ms |
55160 KB |
Output is correct |
4 |
Correct |
33 ms |
55160 KB |
Output is correct |
5 |
Correct |
36 ms |
55164 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
34 ms |
55168 KB |
Output is correct |
2 |
Correct |
33 ms |
55168 KB |
Output is correct |
3 |
Correct |
34 ms |
55168 KB |
Output is correct |
4 |
Correct |
34 ms |
55160 KB |
Output is correct |
5 |
Correct |
35 ms |
55288 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
36 ms |
55160 KB |
Output is correct |
2 |
Correct |
34 ms |
55168 KB |
Output is correct |
3 |
Correct |
35 ms |
55160 KB |
Output is correct |
4 |
Correct |
33 ms |
55160 KB |
Output is correct |
5 |
Correct |
34 ms |
55160 KB |
Output is correct |
6 |
Correct |
34 ms |
55224 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
35 ms |
55168 KB |
Output is correct |
2 |
Correct |
35 ms |
55168 KB |
Output is correct |
3 |
Correct |
40 ms |
55416 KB |
Output is correct |
4 |
Correct |
40 ms |
55416 KB |
Output is correct |
5 |
Correct |
39 ms |
55416 KB |
Output is correct |
6 |
Correct |
39 ms |
55288 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
55 ms |
55928 KB |
Output is correct |
2 |
Correct |
76 ms |
56824 KB |
Output is correct |
3 |
Correct |
113 ms |
58104 KB |
Output is correct |
4 |
Correct |
130 ms |
58360 KB |
Output is correct |
5 |
Correct |
205 ms |
60700 KB |
Output is correct |
6 |
Correct |
145 ms |
58104 KB |
Output is correct |