結果
| 問題 | No.3614 Breaking door keys(LITTLE BREAK ver.) |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-08-06 14:32:25 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.90.0) |
| 結果 |
AC
|
| 実行時間 | 313 ms / 2,000 ms |
| + 143µs | |
| コード長 | 779 bytes |
| 記録 | |
| コンパイル時間 | 4,022 ms |
| コンパイル使用メモリ | 378,456 KB |
| 実行使用メモリ | 34,432 KB |
| 最終ジャッジ日時 | 2026-08-06 14:32:44 |
| 合計ジャッジ時間 | 12,256 ms |
|
ジャッジサーバーID (参考情報) |
judge1_0 / judge3_0 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| サンプル | 0 % | AC * 3 |
| 小課題1 | 10 % | AC * 7 |
| 小課題2 | 20 % | AC * 7 |
| 小課題3 | 30 % | AC * 7 |
| 小課題4 | 30 % | AC * 14 |
| 小課題5 | 10 % | AC * 38 |
| 合計 | 2.5 * 100% = 250 点 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#if __has_include("all.hpp")
#include "all.hpp"
#else
#include <atcoder/all>
#endif
using namespace atcoder;
using ard=array<long long,11>;
const long long INF = 1e15;
const ard init={0,INF,INF,INF,INF,INF,INF,INF,INF,INF,INF};
ard op(ard a, ard b) {
ard tmp=init;
for(int i=0;i<11;i++){
for(int j=0;j+i<11;j++){
tmp[i+j]=min(tmp[i+j],a[i]+b[j]);
}
}
return tmp;
}
ard e() { return init; }
int main(void){
int n,q;
cin>>n>>q;
vector<ard>si(n,init);
for(int i=0;i<n;i++){
si[i][0]=0;
cin>>si[i][1];
}
segtree<ard, op, e> seg(si);
while(q--){
int l,r,k;
cin>>l>>r>>k;
cout<<seg.prod(l-1,r)[k]<<endl;
}
return 0;
}