結果

問題 No.14 最小公倍数ソート
ユーザー maimai
提出日時 2017-07-07 23:34:04
言語 cLay
(20240714-1)
結果
CE  
実行時間 -
コード長 741 bytes
コンパイル時間 1,886 ms
コンパイル使用メモリ 163,124 KB
最終ジャッジ日時 2024-07-05 12:22:41
合計ジャッジ時間 2,214 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
main.cpp: In instantiation of ‘void sort_idx_proto(ITER, ITER, V&) [with ITER = long long int*; V = long long int [10010]]’:
main.cpp:143:19:   required from here
main.cpp:118:7: error: request for member ‘resize’ in ‘idx’, which is of non-class type ‘long long int [10010]’
  118 |   idx.resize(n);
      |   ~~~~^~~~~~
main.cpp:122:12: error: request for member ‘begin’ in ‘idx’, which is of non-class type ‘long long int [10010]’
  122 |   sort(idx.begin(), idx.end(), [&begin](int l, int r) {return begin[l] < begin[r]; });
      |        ~~~~^~~~~
main.cpp:122:25: error: request for member ‘end’ in ‘idx’, which is of non-class type ‘long long int [10010]’
  122 |   sort(idx.begin(), idx.end(), [&begin](int l, int r) {return begin[l] < begin[r]; });
      |                     ~~~~^~~

ソースコード

diff #

template <typename ITER, typename V>
void sort_idx_proto(const ITER begin, const ITER end, V& idx){//, vector<int> &idxr) {
    size_t n = end - begin;
    idx.resize(n);
    //idxr.resize(n);
    for (int i = 0; i < n; ++i) idx[i] = i;
    sort(idx.begin(), idx.end(), [&begin](int l, int r) {return begin[l] < begin[r]; });
    //for (int i = 0; i < n; ++i) idxr[idx[i]] = i;
}

ll n;
ll aa[10010];
ll bb[10010];
ll gg[10010];
ll v[10010];
{
    rd(n, aa(n));
    //vector<int> v(n);
    
    rep(i, n){
        rep(j, i+1, n) gg[j] = gcd(aa[i],aa[j]);
        sort_idx_proto(gg+i, gg+n, v);
        rep(j, i+1, n){
            bb[j] = aa[v[j]];
        }
        rep(j, i+1, n){
            aa[j] = bb[j];
        }
    }
    wt(aa(n));
}
0