제출 #1363874

#제출 시각아이디문제언어결과실행 시간메모리
1363874activedeltorre상형문자열 (IOI24_hieroglyphs)C++20
3 / 100
27 ms5672 KiB
#include "hieroglyphs.h"
#include <cassert>
#include <cstdio>
#include <vector>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
int pos=1;
int min1[200015];
int max1[200015];
int min2[200015];
int max2[200015];
int nmax=200000;
bool cmp(int a,int b)
{
    if(max1[a]>max1[b] && max2[a]>max2[b])
    {
        return false;
    }
    else if(min1[a]<min1[b] && min2[a]<min2[b])
    {
        return true;
    }
    if(max1[b]>max1[a] && max2[b]>max2[a])
    {
        return true;
    }
    else if(min1[b]<min1[a] && min2[b]<min2[a])
    {
        return false;
    }
    pos=0;
    return a<b;
}
std::vector<int> ucs(std::vector<int> A, std::vector<int> B)
{
    pos=1;
    int n=A.size();
    int m=B.size();
    for(int i=0;i<=nmax;i++)
    {
        max1[i]=-1;
        max2[i]=-1;
        min1[i]=nmax;
        min2[i]=nmax;
    }
    for(int i=0;i<n;i++)
    {
        min1[A[i]]=min(min1[A[i]],i);
        max1[A[i]]=max(max1[A[i]],i);
    }
    //cout<<"plm";
    for(int i=0;i<m;i++)
    {
        min2[B[i]]=min(min2[B[i]],i);
        max2[B[i]]=max(max2[B[i]],i);
    }
    vector<int>vals;
    int maxim=0;
    for(int i=0;i<=nmax;i++)
    {
        if(max1[i]!=-1 && max2[i]!=-1)
        {
            vals.push_back(i);
        }
    }
    sort(vals.begin(),vals.end(),cmp);
    if(pos==0)
    {
        return {-1};
    }
    return vals;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…