提出 #72184146


ソースコード 拡げる

#include <bits/stdc++.h>
#define rep(i, s, e) for (ll i = (ll)(s); i < (ll)(e); ++i)
#define rrep(i, s ,e) for (ll i = (ll)(s); i > (ll)(e); --i)
using namespace std;
typedef long long ll;
const ll INF = 1LL << 60;
const ll MOD = 998244353;
//const ll MOD = 1000000007;


template <typename T>
vector<T> compress(vector<T> &X) {
    vector<T> vals = X;
    sort(vals.begin(), vals.end());
    vals.erase(unique(vals.begin(), vals.end()), vals.end());
    for (int i = 0; i < (int)X.size(); i++) {
        X[i] = lower_bound(vals.begin(), vals.end(), X[i]) - vals.begin();
    }
    return vals;
}

template <typename T>
struct SegmentTree {
private:
    int n;
    vector<T> node;
    T e = 0;
public:
    SegmentTree(vector<T> v) {
        ll sz = (ll)v.size();
        n = 1; while(n < sz) n *= 2;
        node.resize(2*n-1, e);

        for(ll i=0; i<sz; i++) node[i+n-1] = v[i];
        for(ll i=n-2; i>=0; i--) node[i] = merge(node[i*2+1],node[i*2+2]);
    }

    T merge(T a,T b){
        return max(a,b);
    }
    void update(ll k, T val) {
        k += (n - 1);
        node[k] = val;


        while(k > 0) {
            k = (k - 1) / 2;
            node[k] = merge(node[2*k+1],node[2*k+2]);
        }
    }

    T query(ll a, ll b, ll k=0, ll l=0, ll r=-1) {
        if(r < 0) r = n;
        if(b <= l || r <= a) return e;
        if(a <= l && r <= b) return node[k];

        T vl = query(a, b, 2*k+1, l, (l+r)/2);
        T vr = query(a, b, 2*k+2, (l+r)/2, r);
        return merge(vl,vr);
    }
 T operator[](ll at){
        at += n-1;
        return node[at];
    }


};


int main(){
    cin.tie(0);cout.tie(0);
    ios_base::sync_with_stdio(false);

    ll n;cin >> n;
    vector<ll> a(n);
    rep(i,0,n)cin >> a[i];
    ll ans = 0;
    map<ll,ll> mp;
    rep(i,0,n){
        if(a[i]%5 == 0){
            ll k = a[i]/5;
            ans += mp[3*k]*mp[7*k];
        }
        mp[a[i]]++;
    }
    map<ll,ll> mp2;
    rep(I,0,n){
        ll i = n-I-1;
        if(a[i]%5 == 0){
            ll k = a[i]/5;
            ans += mp2[3*k]*mp2[7*k];
        }
        mp2[a[i]]++;
    }
    cout << ans << endl;
}

提出情報

提出日時
問題 D - Kadomatsu Subsequence
ユーザ KH8047
言語 C++23 (GCC 15.2.0)
得点 425
コード長 2219 Byte
結果 AC
実行時間 496 ms
メモリ 58256 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 425 / 425
結果
AC × 3
AC × 33
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 1 ms 3376 KiB
sample_02.txt AC 1 ms 3536 KiB
sample_03.txt AC 1 ms 3584 KiB
test_01.txt AC 1 ms 3540 KiB
test_02.txt AC 1 ms 3536 KiB
test_03.txt AC 1 ms 3536 KiB
test_04.txt AC 1 ms 3376 KiB
test_05.txt AC 18 ms 5736 KiB
test_06.txt AC 17 ms 5732 KiB
test_07.txt AC 17 ms 5532 KiB
test_08.txt AC 18 ms 5728 KiB
test_09.txt AC 18 ms 5796 KiB
test_10.txt AC 18 ms 5796 KiB
test_11.txt AC 22 ms 5644 KiB
test_12.txt AC 21 ms 5672 KiB
test_13.txt AC 16 ms 5736 KiB
test_14.txt AC 23 ms 5740 KiB
test_15.txt AC 24 ms 5732 KiB
test_16.txt AC 22 ms 5796 KiB
test_17.txt AC 28 ms 5704 KiB
test_18.txt AC 39 ms 5592 KiB
test_19.txt AC 35 ms 5704 KiB
test_20.txt AC 144 ms 8212 KiB
test_21.txt AC 82 ms 6252 KiB
test_22.txt AC 128 ms 7904 KiB
test_23.txt AC 496 ms 30240 KiB
test_24.txt AC 458 ms 30240 KiB
test_25.txt AC 233 ms 19476 KiB
test_26.txt AC 406 ms 58148 KiB
test_27.txt AC 407 ms 58080 KiB
test_28.txt AC 424 ms 58088 KiB
test_29.txt AC 424 ms 58256 KiB
test_30.txt AC 422 ms 58084 KiB