QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#557947 | #9239. Hieroglyphs | yyyyxh# | Judgement Failed | / | / | C++23 | 1.0kb | 2024-09-11 12:34:07 | 2024-09-11 12:34:08 |
Judging History
This is the latest submission verdict.
- [2024-09-11 12:34:08]
- Judged
- Verdict: Judgement Failed
- Time: 0ms
- Memory: 0kb
- [2024-09-11 12:34:07]
- Submitted
answer
#include "hieroglyphs.h"
#include <vector>
#include <algorithm>
using namespace std;
typedef vector<int> vi;
vi ucs(vi A,vi B){
int n=A.size(),m=B.size();
int lim=max(n,m);
vi C;
vector<vi> ca(lim),cb(lim);
for(int i=0;i<n;++i) ca[A[i]].emplace_back(i);
for(int i=0;i<m;++i) cb[B[i]].emplace_back(i);
for(int i=0;i<lim;++i)
if(!ca[i].empty()&&!cb[i].empty()) C.emplace_back(i);
bool nosol=0;
if(!C.size()) return vi(1,-1);
sort(C.begin(),C.end(),
[&](int x,int y){
bool f0=0,f1=0;
for(int ax:ca[x]) for(int bx:cb[x]) for(int ay:ca[y]) for(int by:cb[y]){
if((ax<ay)&&(bx<by)) f0=1;
if((ax>ay)&&(bx>by)) f1=1;
}
if(f0&&!f1) return 1;
if(f1&&!f0) return 0;
nosol=1;
return x<y;
});
if(nosol) return vi(1,-1);
int p=0;
for(int i=0;i<n;++i){
if(C[p]==A[i]) ++p;
if(p==(int)C.size()) break;
}
if(p!=(int)C.size()) return vi(1,-1);
p=0;
for(int i=0;i<m;++i){
if(C[p]==B[i]) ++p;
if(p==(int)C.size()) break;
}
if(p!=(int)C.size()) return vi(1,-1);
return C;
}
詳細信息
Failed to show details