提出 #16706783


ソースコード 拡げる

#include<bits/stdc++.h>
#define ll long long
#define dbg(x) cout<<#x<<": "<<x<<endl;
#define N 300005
#define M 1000000007
#define pii pair<ll,ll>
#define fast ios_base::sync_with_stdio(0);cin.tie(0);
using namespace std;

int lazy[N*3];
int n;
int A[N];
int B[N];
int f[N],l[N];
int C[N];

void update(int node,int l,int r,int b,int e)
{
    if(e<l||r<b)
        return;
    if(b<=l&&r<=e)
    {
        lazy[node]=1;
        return;
    }
    update(node*2,l,(l+r)/2,b,e);
    update(node*2+1,(l+r)/2+1,r,b,e);
    return;
}
int query(int node,int l,int r,int p,int c=0)
{
    if(p<l||r<p)
        return 1;
    c|=lazy[node];
    if(l==r)
    {

        return c==0;
    }
    return query(node*2,l,(l+r)/2,p,c)*query(node*2+1,(l+r)/2+1,r,p,c);
}


main()
{
    memset(f,-1,sizeof f);
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>A[i];
        if(f[A[i]]==-1) f[A[i]]=i;
        l[A[i]]=i;
    }
    for(int i=0;i<n;i++)
    {
        cin>>B[i];
        if(f[B[i]]!=-1)
        {

            int g,h;
            if(f[B[i]]>=i)
            {
                g=f[B[i]]-i;
            }
            else
            {
                g=n-i+f[B[i]];
            }

            if(l[B[i]]>=i)
            {
                h=l[B[i]]-i;
            }
            else
            {
                h=n-i+l[B[i]];
            }
            if(g<=h)
            {
                update(1,0,n-1,g,h);
            }
            else
            {
                update(1,0,n-1,g,n-1);
                update(1,0,n-1,0,h);
            }
           // cout<<"G: "<<g<<' '<<h<<endl;
        }
    }
    for(int i=0;i<n;i++)
    {
        if(query(1,0,n-1,i,0))
        {
            //cout<<i<<endl;
            for(int j=0;j<n;j++)
            {
                C[(j+i)%n]=B[j];
            }
            cout<<"Yes\n";
            for(int j=0;j<n;j++)
                cout<<C[j]<<' ';
            return 0;
        }
    }
    cout<<"No";
}

提出情報

提出日時
問題 F - Contrast
ユーザ Iftekhar_Hakim
言語 C++ (GCC 9.2.1)
得点 600
コード長 2054 Byte
結果 AC
実行時間 159 ms
メモリ 9252 KiB

コンパイルエラー

./Main.cpp:44:6: warning: ISO C++ forbids declaration of ‘main’ with no type [-Wreturn-type]
   44 | main()
      |      ^

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 600 / 600
結果 AC
AC × 50
セット名 テストケース
Sample
All case03, case04, case05, case06, case07, case08, case09, case10, case11, case12, case13, case14, case15, case16, case17, case18, case19, case20, case21, case22, case23, case24, case25, case26, case27, case28, case29, case30, case31, case32, case33, case34, case35, case36, case37, case38, case39, case40, case41, case42, case43, case44, case45, case46, case47, case48, case49, sample00, sample01, sample02
ケース名 結果 実行時間 メモリ
case03 AC 9 ms 4640 KiB
case04 AC 3 ms 4580 KiB
case05 AC 4 ms 4712 KiB
case06 AC 6 ms 4740 KiB
case07 AC 5 ms 4784 KiB
case08 AC 8 ms 4712 KiB
case09 AC 3 ms 4808 KiB
case10 AC 3 ms 4732 KiB
case11 AC 3 ms 4580 KiB
case12 AC 67 ms 7124 KiB
case13 AC 77 ms 6268 KiB
case14 AC 117 ms 9200 KiB
case15 AC 120 ms 9028 KiB
case16 AC 88 ms 7008 KiB
case17 AC 112 ms 8492 KiB
case18 AC 110 ms 7572 KiB
case19 AC 113 ms 7188 KiB
case20 AC 113 ms 7160 KiB
case21 AC 119 ms 7048 KiB
case22 AC 114 ms 8744 KiB
case23 AC 112 ms 8640 KiB
case24 AC 113 ms 8524 KiB
case25 AC 112 ms 8516 KiB
case26 AC 113 ms 9252 KiB
case27 AC 116 ms 9200 KiB
case28 AC 112 ms 8320 KiB
case29 AC 112 ms 8316 KiB
case30 AC 111 ms 8456 KiB
case31 AC 110 ms 8140 KiB
case32 AC 109 ms 8008 KiB
case33 AC 109 ms 7840 KiB
case34 AC 109 ms 7748 KiB
case35 AC 131 ms 7716 KiB
case36 AC 156 ms 9132 KiB
case37 AC 159 ms 9212 KiB
case38 AC 159 ms 9128 KiB
case39 AC 112 ms 8364 KiB
case40 AC 113 ms 8368 KiB
case41 AC 115 ms 8536 KiB
case42 AC 114 ms 8488 KiB
case43 AC 114 ms 8668 KiB
case44 AC 112 ms 8624 KiB
case45 AC 114 ms 8676 KiB
case46 AC 84 ms 6612 KiB
case47 AC 15 ms 4804 KiB
case48 AC 74 ms 6448 KiB
case49 AC 118 ms 7760 KiB
sample00 AC 8 ms 4712 KiB
sample01 AC 4 ms 4628 KiB
sample02 AC 2 ms 4752 KiB