結果
| 問題 | No.3705 ビバ子とマカロン (Bibako and Macaron) |
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2026-09-07 20:52:43 |
| 言語 | C++23(gcc16) (gcc 16.1.0 + boost 1.92.0 + ACL) |
| 結果 |
WA
不安定
|
| 実行時間 | - |
| コード長 | 5,924 bytes |
| 記録 | |
| コンパイル時間 | 4,784 ms |
| コンパイル使用メモリ | 394,104 KB |
| 実行使用メモリ | 6,528 KB |
| 最終ジャッジ日時 | 2026-09-10 15:33:20 |
| 合計ジャッジ時間 | 12,875 ms |
|
ジャッジサーバーID (参考情報) |
judge2_1 / judge1_1 |
(要ログイン)
| サブタスク | 配点 | 結果 |
|---|---|---|
| 小課題1 | 10 % | WA * 5 |
| 小課題2 | 30 % | AC * 1 WA * 7 |
| 小課題3 | 60 % | -- * 15 |
| 合計 | 0 点 |
ソースコード
#ifndef ONLINE_JUDGE
#define _GLIBCXX_DEBUG
#endif
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
using ll = long long;
using ld = long double;
using ull = unsigned long long;
using vi =vector<int>;
using vd =vector<double>;
using vld = vector<ld>;
using vs =vector<string>;
using vb =vector<bool>;
using vl =vector<ll>;
using vc =vector<char>;
using vtl = vector<tuple<ll,ll,ll>>;
using vvi =vector<vector<int>>;
using vvs =vector<vector<string>>;
using vvc =vector<vector<char>>;
using vvb =vector<vector<bool>>;
using vvl =vector<vector<ll>>;
using vvtl = vector<vtl>;
using vvvl=vector<vector<vector<ll>>>;
using sl =stack<ll>;
using pl=pair<ll,ll>;
using vpl=vector<pl>;
using tl = tuple<ll, ll, ll>;
#define rep(i,l,r)for(ll i=(l);i<(r);i++)
#define YES cout<<"Yes"<<endl
#define NO cout<<"No"<<endl
#define YN {cout<<"Yes"<<endl;}else{cout<<"No"<<endl;}// if(a==b)YN;
#define dame cout<<-1<<endl
template<class... T>void IN(T&...a){(cin>>...>>a);}
template<class... T>void OUT(const T&... b){string c="";(cout<<...<<(cout<<exchange(c,' '),b));cout<<'\n';}
#define LL(...) ll __VA_ARGS__;IN(__VA_ARGS__)
#define ST(...) string __VA_ARGS__;IN(__VA_ARGS__)
double pi = 3.141592653589793238;
const ll MAX = 3000000;
const ll MOD = 998244353;
long long fac[MAX], finv[MAX], inv[MAX];
// テーブルを作る前処理
void COMinit() {
fac[0] = fac[1] = 1;
finv[0] = finv[1] = 1;
inv[1] = 1;
for (int i = 2; i < MAX; i++){
fac[i] = fac[i - 1] * i % MOD;
inv[i] = MOD - inv[MOD%i] * (MOD / i) % MOD;
finv[i] = finv[i - 1] * inv[i] % MOD;
}
}
// 二項係数計算
long long COM(int n, int k){
if (n < k) return 0;
if (n < 0 || k < 0) return 0;
return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}
//2進数
vl Binary(int x) {
vl bit(10);
for (int i = 0; i < 10; i++) {
int Div = (1 << i);
bit[i] = (x / Div) % 2;
}
return bit;
}
//DP
template<class T> inline bool chmin(T& a, T b) {
if (a > b) {
a = b;
return true;
}
return false;
}
template<class T> inline bool chmax(T& a, T b) {
if (a < b) {
a = b;
return true;
}
return false;
}
ll input(){
ll x;
cin>>x;
return x;
}
ll ketasuu(ll n){
if(n==0) return 1;
return floor(log10(abs(n)))+1;
}
ll gcd(ll a,ll b){
if(a==0) return b;
return gcd(b%a,a);
}
ll lcm(ll a,ll b){
return a/gcd(a,b)*b;
}
ll nsqrt(ll n) {
ll ok=0, ng=40000000001LL;
while(ng-ok>1){
ll mid=(ok+ng)/2;
if(mid<=n/mid) ok=mid;
else ng=mid;
}
return ok;
}
ll vp(ll N,ll p){
ll ans=0;
while(N%p==0){
ans++;
N/=p;
}
return ans;
}
ll d(ll N){
ll M=nsqrt(N);
ll ans=1,cnt=0;
rep(i,2,M+1){
if(N%i==0){
N/=i;
i--;
cnt++;
}
else{
ans*=(cnt+1);
cnt=0;
}
}
if(N>M) ans*=2;
return ans;
}
//N以下の素数の個数
ll pcnt(ll N){
if(N==1) return 0;
else{
vl p;
ll cnt=1;
p.push_back(2);
rep(i,3,N+1){
bool ok=true;
rep(j,0,p.size()){
if(i%p[j]==0) {ok=false;break;}
}
if(ok==true) {p.push_back(i);cnt++;}
}
return cnt;
}
}
//素因数分解
map<ll, ll> prime_fact(ll N){
ll M = nsqrt(N);
ll cnt = 0;
map<ll, ll> mp;
rep(i,2,M+1){
if(N % i == 0){
cnt++;
N /= i;
i--;
}
else if(cnt != 0){
mp[i] = cnt;
cnt = 0;
}
}
if(N != 1) mp[N] = 1;
return mp;
}
ll modpow(ll a,ll b,ll m){//a^b%m
if(b==0) return 1;
if(b%2==0){
ll x=modpow(a,b/2,m);
return x*x%m;
}
ll y=modpow(a,b-1,m);
return (y*(a%m))%m;
}
//エラトステネスの篩
vector < bool > isprime;
//返り値は素数のリスト。
vector < ll > Era(int n) {
isprime.resize(n, true);
vector < ll > res;
isprime[0] = false;
isprime[1] = false;
for(ll i = 2; i < n; ++i) isprime[i] = true;
for(ll i = 2; i < n; ++i) {
if(isprime[i]) {
res.push_back(i);
for(ll j = i * 2; j < n; j += i) isprime[j] = false;
}
}
return res;
}
//等比級数
ll tk(ll A,ll X,ll M){//1+a+...+a^{X-1}%M
if(X==1) return 1%M;
if(A==1) return X%M;
else{
if(X%2==0){
return (tk(A,X/2,M)*(1+modpow(A,(X/2),M)))%M;
}
else{
return (tk(A,X-1,M)+modpow(A,X-1,M))%M;
}
}
}
void gcin(vvl &G, ll M){
rep(i,0,M){
ll u, v; cin >> u >> v;
u--; v--;
G[u].emplace_back(v);
G[v].emplace_back(u);
}
}
void vcin(vl &A, ll N){
rep(i,0,N)
cin >> A[i];
}
bool within(ll H, ll W, ll nx, ll ny){
return (0 <= nx && nx < H && 0 <= ny && ny < W);
}
using mint=modint998244353;
using vm=vector<mint>;
using vvm=vector<vm>;
using vvvm=vector<vvm>;
ll INF = 1e18;
ll dx[8]={1,1,0,-1,-1,-1,0,1};
ll dy[8]={0,1,1,1,0,-1,-1,-1};
ll sdx[6]={-1,-1,0,0,1,1};
ll sdy[6]={-1,0,-1,1,0,1};
//cinを忘れない
//変数名の重複に注意
//modは取りましたか?
//変数の宣言場所
//0-indexedか1-indexedか
//境界の等号
//配列の宣言(push_back前提じゃないか)
//無向か有向か
//型を間違えない
//グリッドで縦と横を逆にしない
//__int128_tのキャスト
int main(void) {
LL(N);
vl taste(N);
rep(i,0,N){
LL(a);
a--;
taste[a]++;
}
LL(Q);
while(Q--){
LL(l, r, lda, rda);
l--; r--; lda--; rda--;
bool ok = true;
rep(i,l,r+1){
if(!taste[i]) ok = false;
else taste[i]--;
}
rep(i,lda,rda+1){
if(!taste[i]) ok = false;
}
if(ok) YN;
}
return 0;
}