# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
81861 |
2018-10-27T12:06:42 Z |
Shtef |
Zamjena (COCI18_zamjena) |
C++14 |
|
195 ms |
19172 KB |
#include <iostream>
#include <string>
#include <utility>
#include <algorithm>
#include <vector>
#include <map>
using namespace std;
typedef pair <string, int> psi;
#define x first
#define y second
#define mp make_pair
int n, c[50005], d[50005];
vector <string> r;
string a[50005], b[50005], vr[100005];
vector <int> ms[100005];
map <string, string> m;
bool dfs(int x, string s){
if(vr[x].size()){
if(vr[x] != s){
return 0;
}
return 1;
}
vr[x] = s;
bool ret = 1;
for(vector <int>::iterator i = ms[x].begin() ; i != ms[x].end() ; ++i){
int o = *i;
ret = min(ret, dfs(o, s));
}
return ret;
}
bool isnumber(char c){
return (c >= '0' && c <= '9');
}
int main ()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin >> n;
for(int i = 0 ; i < n ; ++i){
cin >> a[i];
if(!isnumber(a[i][0]))
r.push_back(a[i]);
}
for(int i = 0 ; i < n ; ++i){
cin >> b[i];
if(!isnumber(b[i][0]))
r.push_back(b[i]);
}
sort(r.begin(), r.end());
r.resize(unique(r.begin(), r.end()) - r.begin());
for(int i = 0 ; i < n ; ++i){
c[i] = lower_bound(r.begin(), r.end(), a[i]) - r.begin();
d[i] = lower_bound(r.begin(), r.end(), b[i]) - r.begin();
}
for(int i = 0 ; i < n ; ++i){
if(isnumber(a[i][0]) && isnumber(b[i][0])){
if(a[i] != b[i]){
cout << "NE" << endl;
return 0;
}
continue;
}
if(!isnumber(a[i][0]) && !isnumber(b[i][0])){
ms[c[i]].push_back(d[i]);
ms[d[i]].push_back(c[i]);
continue;
}
if(isnumber(a[i][0])){
if(!((int)m[b[i]].size())){
m[b[i]] = a[i];
}
else{
if(m[b[i]] != a[i]){
cout << "NE" << endl;
return 0;
}
}
}
else{
if(!((int)m[a[i]].size())){
m[a[i]] = b[i];
}
else{
if(m[a[i]] != b[i]){
cout << "NE" << endl;
return 0;
}
}
}
}
for(int i = 0 ; i < n ; ++i){
if(isnumber(a[i][0]) && isnumber(b[i][0]))
continue;
if((int)m[a[i]].size()){
if(!dfs(c[i], m[a[i]])){
cout << "NE" << endl;
return 0;
}
}
if((int)m[b[i]].size()){
if(!dfs(d[i], m[b[i]])){
cout << "NE" << endl;
return 0;
}
}
}
cout << "DA" << endl;
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
9 ms |
8952 KB |
Output is correct |
2 |
Correct |
9 ms |
9028 KB |
Output is correct |
3 |
Correct |
14 ms |
9028 KB |
Output is correct |
4 |
Correct |
9 ms |
9056 KB |
Output is correct |
5 |
Correct |
9 ms |
9136 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
11 ms |
9136 KB |
Output is correct |
2 |
Correct |
9 ms |
9164 KB |
Output is correct |
3 |
Correct |
9 ms |
9184 KB |
Output is correct |
4 |
Correct |
9 ms |
9184 KB |
Output is correct |
5 |
Correct |
9 ms |
9184 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
9 ms |
9196 KB |
Output is correct |
2 |
Correct |
9 ms |
9324 KB |
Output is correct |
3 |
Correct |
9 ms |
9324 KB |
Output is correct |
4 |
Correct |
9 ms |
9324 KB |
Output is correct |
5 |
Correct |
9 ms |
9324 KB |
Output is correct |
6 |
Correct |
9 ms |
9324 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
11 ms |
9340 KB |
Output is correct |
2 |
Correct |
12 ms |
9340 KB |
Output is correct |
3 |
Correct |
15 ms |
9592 KB |
Output is correct |
4 |
Correct |
15 ms |
9596 KB |
Output is correct |
5 |
Correct |
17 ms |
9724 KB |
Output is correct |
6 |
Correct |
15 ms |
9724 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
30 ms |
10408 KB |
Output is correct |
2 |
Correct |
64 ms |
12528 KB |
Output is correct |
3 |
Correct |
87 ms |
14092 KB |
Output is correct |
4 |
Correct |
97 ms |
14092 KB |
Output is correct |
5 |
Correct |
195 ms |
19172 KB |
Output is correct |
6 |
Correct |
146 ms |
19172 KB |
Output is correct |