提出 #58033519


ソースコード 拡げる

Copy
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;
using ui = unsigned;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
#define rep(i,l,r) for(int i=(l);i<=(r);++i)
#define per(i,l,r) for(int i=(l);i>=(r);--i)
#define repn(i,n) for(int i=0;i<(n);++i)
#define sizc(x) ((int)x.size())
#define allc(x) x.begin(),x.end()
#define fir first
#define sec second
using Z=modint998244353;
constexpr int N = 305;
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace std;
using namespace atcoder;

using ui = unsigned;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
#define rep(i,l,r) for(int i=(l);i<=(r);++i)
#define per(i,l,r) for(int i=(l);i>=(r);--i)
#define repn(i,n)  for(int i=0;i<(n);++i)
#define sizc(x) ((int)x.size())
#define allc(x) x.begin(),x.end()
#define fir first
#define sec second

using Z=modint998244353;

constexpr int N = 305;

int n,a[N];

Z f[N];

int s[N][N];

int qry(int l1,int r1,int l2,int r2){
    return s[r1][r2]-s[r1][l2-1]-s[l1-1][r2]+s[l1-1][l2-1];
}

signed main(){
    // freopen(".in","r",stdin);
    // freopen(".out","w",stdout);
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    cin>>n;
    rep(i,1,n){
        int x;cin>>x;
        cin>>a[x];
    }
    a[0]=n+1,f[0]=1;
    rep(i,0,n+1){
        if(i)rep(j,0,n+1)s[i][j]=s[i-1][j];
        rep(j,a[i],n+1)++s[i][j];
    }
    rep(i,1,n+1){
        rep(j,0,i-1)if(a[j]>a[i]){
            bool gg=0;
            rep(k,j+1,i-1)if(a[k]<a[j]&&a[k]>a[i]){
                bool flg=0;
                if(qry(j+1,k-1,a[i]+1,a[k]-1))flg=1;
                if(qry(k+1,i-1,a[k]+1,a[j]-1))flg=1;
                if(!flg){gg=1;break;}
            }
            if(!gg)f[i]+=f[j];
        }
    }
    cout<<f[n+1].val()<<'\n';
}

提出情報

提出日時
問題 D - Erase Balls 2D
ユーザ KnownError_
言語 C++ 20 (gcc 12.2)
得点 1000
コード長 1406 Byte
結果 AC
実行時間 6 ms
メモリ 4000 KB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 1000 / 1000
結果
AC × 2
AC × 26
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_internal_00.txt, 01_internal_01.txt, 01_internal_02.txt, 01_internal_03.txt, 01_internal_04.txt, 01_internal_05.txt, 01_internal_06.txt, 01_internal_07.txt, 01_internal_08.txt, 01_internal_09.txt, 01_internal_10.txt, 01_internal_11.txt, 01_internal_12.txt, 01_internal_13.txt, 01_internal_14.txt, 01_internal_15.txt, 01_internal_16.txt, 01_internal_17.txt, 01_internal_18.txt, 01_internal_19.txt, 01_internal_20.txt, 01_internal_21.txt, 01_internal_22.txt, 01_internal_23.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3512 KB
00_sample_01.txt AC 1 ms 3524 KB
01_internal_00.txt AC 1 ms 3504 KB
01_internal_01.txt AC 1 ms 3384 KB
01_internal_02.txt AC 2 ms 3620 KB
01_internal_03.txt AC 4 ms 3840 KB
01_internal_04.txt AC 1 ms 3656 KB
01_internal_05.txt AC 3 ms 3848 KB
01_internal_06.txt AC 6 ms 3772 KB
01_internal_07.txt AC 6 ms 3872 KB
01_internal_08.txt AC 6 ms 3808 KB
01_internal_09.txt AC 6 ms 3864 KB
01_internal_10.txt AC 6 ms 3868 KB
01_internal_11.txt AC 6 ms 3924 KB
01_internal_12.txt AC 1 ms 4000 KB
01_internal_13.txt AC 1 ms 3780 KB
01_internal_14.txt AC 2 ms 3856 KB
01_internal_15.txt AC 1 ms 3864 KB
01_internal_16.txt AC 1 ms 3912 KB
01_internal_17.txt AC 2 ms 3812 KB
01_internal_18.txt AC 1 ms 3816 KB
01_internal_19.txt AC 3 ms 3804 KB
01_internal_20.txt AC 2 ms 3780 KB
01_internal_21.txt AC 4 ms 3872 KB
01_internal_22.txt AC 5 ms 3812 KB
01_internal_23.txt AC 2 ms 3808 KB


2025-03-19 (水)
23:26:42 +00:00