提出 #67346958


ソースコード 拡げる

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int MAXN = 200000;

class Solver {
    int n;
    ll v[MAXN], a[MAXN];
    unordered_map<ll,int> cp0, cn0;

    bool mag(ll *b){
        ll g = std::gcd(b[1], b[0]);
        ll p = b[1]/g, q = b[0]/g;
        for(int i=1;i<n;i++){
            unsigned long long L = (unsigned long long)b[i]*q;
            unsigned long long R = (unsigned long long)b[i-1]*p;
            if(L!=R) return false;
        }
        return true;
    }

    bool pat(bool *s,int t){
        for(int i=0;i<n;i++){
            bool w = t<2 ? (t==0) : ((i&1)==(t&1));
            if(s[i]!=w) return false;
        }
        return true;
    }

public:
    bool solve(){
        cin>>n;
        cp0.clear(); cn0.clear();
        for(int i=0;i<n;i++){
            cin>>v[i];
            a[i]=llabs(v[i]);
            if(v[i]>0) cp0[a[i]]++;
            else       cn0[a[i]]++;
        }
        if(n<=2) return true;
        sort(a,a+n);
        ll *b = new ll[n];
        bool *s = new bool[n];
        bool *d = new bool[n];
        bool ok=false;
        for(int dir=0;dir<2;dir++){
            memcpy(b,a,sizeof(ll)*n);
            if(dir) reverse(b,b+n);
            if(!mag(b)) continue;
            auto cp=cp0, cn=cn0;
            for(int i=0;i<n;i++){
                ll x=b[i];
                if(cp[x]>0) s[i]=1, cp[x]--;
                else         s[i]=0, cn[x]--;
            }
            for(int i=0;i<n;i++) d[i]=s[n-1-i];
            for(auto arr:{s,d}){
                for(int t=0;t<4 && !ok;t++)
                    if(pat(arr,t)) ok=true;
                if(ok) break;
            }
            if(ok) break;
        }
        return ok;
    }
};

int main(){
    int T; 
    cin>>T;
    Solver S;
    while(T--){
        cout<<(S.solve()?"Yes\n":"No\n");
    }
    return 0;
}

提出情報

提出日時
問題 D - Make Geometric Sequence
ユーザ Naman____17
言語 C++ 17 (Clang 16.0.6)
得点 0
コード長 1924 Byte
結果 WA
実行時間 838 ms
メモリ 15476 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 425
結果
AC × 1
AC × 3
WA × 29
セット名 テストケース
Sample 00_sample_00.txt
All 00_sample_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 02_handmade_31.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3428 KiB
01_random_01.txt WA 44 ms 4796 KiB
01_random_02.txt WA 442 ms 11492 KiB
01_random_03.txt WA 106 ms 13924 KiB
01_random_04.txt WA 93 ms 5956 KiB
01_random_05.txt WA 225 ms 7724 KiB
01_random_06.txt WA 25 ms 4072 KiB
01_random_07.txt AC 58 ms 8600 KiB
01_random_08.txt WA 93 ms 5956 KiB
01_random_09.txt WA 93 ms 5944 KiB
01_random_10.txt WA 53 ms 4904 KiB
01_random_11.txt WA 530 ms 11256 KiB
01_random_12.txt WA 94 ms 5848 KiB
01_random_13.txt WA 93 ms 5928 KiB
01_random_14.txt WA 93 ms 6000 KiB
01_random_15.txt WA 169 ms 6640 KiB
01_random_16.txt WA 93 ms 5844 KiB
01_random_17.txt WA 93 ms 5912 KiB
01_random_18.txt WA 68 ms 5440 KiB
01_random_19.txt AC 59 ms 8500 KiB
01_random_20.txt WA 42 ms 4568 KiB
01_random_21.txt WA 838 ms 12396 KiB
01_random_22.txt WA 93 ms 5884 KiB
01_random_23.txt WA 57 ms 4892 KiB
01_random_24.txt WA 383 ms 15476 KiB
01_random_25.txt WA 94 ms 6000 KiB
01_random_26.txt WA 93 ms 5916 KiB
01_random_27.txt WA 134 ms 6196 KiB
01_random_28.txt WA 468 ms 11036 KiB
01_random_29.txt WA 94 ms 5812 KiB
01_random_30.txt WA 106 ms 5400 KiB
02_handmade_31.txt WA 1 ms 3588 KiB