結果
| 問題 | No.3614 Breaking door keys(LITTLE BREAK ver.) |
| コンテスト | |
| ユーザー |
kazuppa
|
| 提出日時 | 2026-08-05 22:31:56 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.90.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 872 bytes |
| 記録 | |
| コンパイル時間 | 1,990 ms |
| コンパイル使用メモリ | 337,108 KB |
| 実行使用メモリ | 5,888 KB |
| 最終ジャッジ日時 | 2026-08-06 13:39:45 |
| 合計ジャッジ時間 | 7,909 ms |
|
ジャッジサーバーID (参考情報) |
judge2_0 / judge1_0 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| サンプル | 0 % | AC * 1 WA * 2 |
| 小課題1 | 10 % | WA * 7 |
| 小課題2 | 20 % | WA * 7 |
| 小課題3 | 30 % | AC * 7 |
| 小課題4 | 30 % | AC * 7 WA * 7 |
| 小課題5 | 10 % | AC * 8 WA * 30 |
| 合計 | 2.5 * 30% = 75 点 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
template<typename S,auto op,auto e>
struct segtree{
private:
int siz;
vector<S> val;
S prod(int l,int r,int a,int b,int u){
if(l<=a&&b<=r)return val[u];
if(b<=l||r<=a)return e();
int m=(a+b)/2;
return op(prod(l,r,a,m,2*u),prod(l,r,m,b,2*u+1));
}
public:
segtree(vector<S> a){
int n=a.size();siz=1;
while(siz<n)siz*=2;
val.resize(siz*2,e());
for(int i=0;i<n;i++)val[i+siz]=a[i];
for(int i=siz-1;i>=1;i--)val[i]=op(val[2*i],val[2*i+1]);
}
S prod(int l,int r){return prod(l,r,0,siz,1);}
};
int op(int a,int b){return min(a,b);}
int e(){return 1<<30;}
int main(){
int n,q;cin>>n>>q;
vector<int> s(n);
for(int i=0;i<n;i++)cin>>s[i];
segtree<int,op,e> seg(s);
while(q--){
int l,r,k;cin>>l>>r>>k;
l--;
cout<<seg.prod(l,r)<<endl;
}
}
kazuppa