# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
472619 | MamdouhN | Zamjena (COCI18_zamjena) | C++17 | 32 ms | 9688 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
#define int long long
vector<int> a;
vector<int> b;
bool isNumeric(string s){
for(int i=0;i<s.size();i++){
if(s[i]<'0'||s[i]>'9')return false;
}
return true;
}
int dsu[1000000];
int findIt(int x){
if(x==dsu[x])return x;
return dsu[x] = findIt(dsu[x]);
}
void unionIt(int x,int y){
dsu[findIt(x)] = findIt(y);
}
map<string,int> variableMapper;
main()
{
for(int i=0;i<1000000;i++)dsu[i]=i;
int n;
cin>>n;
int cnt = 1;
for(int i=0;i<n;i++){
string s;
cin>>s;
if(isNumeric(s))a.push_back(stoi(s));
else{
if(variableMapper[s]==0){
variableMapper[s] = 1000+cnt;
cnt++;
}
a.push_back(variableMapper[s]);
}
}
for(int i=0;i<n;i++){
string s;
cin>>s;
if(isNumeric(s))b.push_back(stoi(s));
else{
if(variableMapper[s]==0){
variableMapper[s] = 1000+cnt;
cnt++;
}
b.push_back(variableMapper[s]);
}
}
bool failure = false;
for(int i=0;i<n;i++){
if(failure)break;
if(a[i]<=1000&&b[i]<=1000){
if(a[i]!=b[i])failure = true;
continue;
}
if(a[i]>1000&&b[i]<=1000){
if(findIt(a[i])<=1000 && findIt(a[i])!= b[i]) failure = true;
unionIt(a[i],b[i]);
continue;
}
if(a[i]<=1000&&b[i]>1000){
if(findIt(b[i])<=1000 && findIt(b[i])!= a[i]) failure = true;
unionIt(b[i],a[i]);
continue;
}
if(findIt(a[i])!=a[i] && findIt(b[i])!=b[i] && findIt(a[i])!=findIt(b[i]) ){
failure = true;
continue;
}
if(findIt(a[i])!=a[i]&&findIt(b[i])!=b[i]){
unionIt(b[i],a[i]);
continue;
}
unionIt(a[i],b[i]);
}
if(failure)cout<<"NE"<<endl;
else cout<<"DA"<<endl;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |