提出 #54877506


ソースコード 拡げる

#include<bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp> 
#include <ext/pb_ds/tree_policy.hpp> 
#include <time.h> 
#include <math.h> 
using namespace std;
using namespace __gnu_pbds; 
#define ll long long
#define ull unsigned long long
#define endl "\n"
#define MOD 53473031747542373
// For multiset
#define ordered_set tree<pair<ll,ll>, null_type,less<pair<ll,ll>>, rb_tree_tag,tree_order_statistics_node_update> 
// For ordered set
// #define ordered_set tree<ll, null_type,less<ll>, rb_tree_tag,tree_order_statistics_node_update> 
// order_of_key (k) : Number of items strictly smaller than k .
// find_by_order(k) : K-th element in a set (counting from zero).

long long nCR(ll n, ll r) {
    if(n==0){
        return 0;
    }
    if(n<r){
        return 0;
    }
    //https://stackoverflow.com/questions/11809502/which-is-better-way-to-calculate-ncr
    if(r > n - r) r = n - r; // because C(n, r) == C(n, n - r)
    long long ans = 1;
    ll i;

    for(i = 1; i <= r; i++) {
        ans *= n - r + i;
        ans /= i;
    }

    return ans;
}
ll powerMod(ll x, ll y, ll mod){
    ll res = 1;    
    x = x % mod; 
    while (y > 0){
        if (y & 1){
            res = ((res%mod)*(x%mod)) % mod;
        }
        y = y>>1;
        x = ((x%mod)*(x%mod)) % mod;
    }
    return res;
}
ll power(ll x, ll y){
    ll res = 1;    
    while (y > 0){
        if (y & 1){
            res = ((res)*(x));
        }
        y = y>>1;
        x = ((x)*(x));
    }
    return res;
}
 // Returns n^(-1) mod p
ll modInverse(ll n, ll mod) {
    return powerMod(n, mod-2, mod);
}
vector<ll>fact(1e6+1,1);
void precomputeFactorial(ll mod){
    fact[0]=1;
    for(ll i=1;i<=1000000;++i){
        fact[i]=(i%mod)*(fact[i-1]%mod);
        fact[i]%=mod;
    }
}
// Returns nCr % p using Fermat's little theorem.
ll nCrModPFermat(ll n, ll r, ll mod) {
    if(n<r){
        return 0;
    }
    if (r==0){
        return 1;
    }
    if(fact[2]==1){
        precomputeFactorial(mod);
    }
    return (fact[n]* modInverse(fact[r], mod) % mod * modInverse(fact[n-r], mod) % mod) % mod;
}
// https://codeforces.com/blog/entry/62393 http://xorshift.di.unimi.it/splitmix64.c
struct custom_hash { static uint64_t splitmix64(uint64_t x) { x += 0x9e3779b97f4a7c15; x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9; x = (x ^ (x >> 27)) * 0x94d049bb133111eb; return x ^ (x >> 31); } size_t operator()(uint64_t x) const { static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count(); return splitmix64(x + FIXED_RANDOM);}};
ll find(ll i,vector<ll>&parent){ if(parent[i]!=i){ return parent[i] = find(parent[i],parent); } return parent[i];}

void merge(ll a,ll b,vector<ll>&rank,vector<ll>&parent){
    ll x = find(a,parent);
    ll y = find(b,parent);
    if(x==y){
        return;
    }
    if(rank[x]>=rank[y]){
        parent[y]=x;
        // cout<<"rank[y] = "<<rank[]
        rank[x]+=rank[y];
        rank[y]=0;
    }
    else{
        parent[x]=y;
        rank[y]+=rank[x];
        rank[x]=0;
    }
}

vector<vector<ll>>dir={{0,-1},{0,1},{1,0},{-1,0}};
ll max(ll a,ll b){ return a>b?a:b;}
ll min(ll a,ll b){ return a<b?a:b;}
ll lcm(ll a,ll b){return a*b/__gcd(a,b);}
ll complement(ll x,ll n){ return (x^(n-1));}
bool checkPrime(ll num){for(ll i=2;i<=sqrt(num);++i){if(num%i==0){return false;}}return true;}
bool isSorted(vector<ll>&vect){for(ll i=1;i<vect.size();++i){if(vect[i]<vect[i-1]){return false;}}return true;}
bool isPowerOfTwo(ll num){return (num&(num-1))==0;}
template <typename T> bool allEqual(const std::vector<T>& vec) { if (vec.empty()) { return true; } T reference = vec[0]; for (size_t i = 1; i < vec.size(); ++i) { if (vec[i] != reference) { return false; }} return true;}


const char nl = '\n';
const char sp = ' ';
void yesno(bool a) { cout << (a ? "Yes\n" : "No\n"); }
template<typename L, typename R> ostream& operator<<(ostream& out, const pair<L, R>& p) { out << '(' << p.first << ',' << p.second << ')';return out;} 
template<typename T> ostream& operator<<(ostream& out, const vector<T>& v) { for (auto &i : v) out << i << ' '; out << nl; return out;}
template<typename T> ostream& operator<<(ostream& out, const set<T>& v) { for (auto &i : v) out << i << ' '; out << nl; return out;}
template<typename T> ostream& operator<<(ostream& out, const unordered_set<T>& v) { for (auto &i : v) out << i << ' '; out << nl; return out;}
template<typename T> ostream& operator<<(ostream& out, const unordered_set<T,custom_hash>& v) { for (auto &i : v) out << i << ' '; out << nl; return out;}
template<typename K, typename V> ostream& operator<<(ostream& out, const map<K, V>& m) { out << '['; for (auto &it : m) { out << it.first << ':' << it.second << sp;}out << "]\n";return out;}
template<typename K, typename V> ostream& operator<<(ostream& out, const unordered_map<K, V>& m) { out << '['; for (auto &it : m) { out << it.first << ':' << it.second << sp; }out << "]\n";return out;}
template<typename K, typename V> ostream& operator<<(ostream& out, const unordered_map<K, V,custom_hash>& m) { out << '['; for (auto &it : m) { out << it.first << ':' << it.second << sp; }out << "]\n";return out;}
void print(vector<ll>&arr,ll index=0){ for(ll i=index;i<arr.size();++i){ cout<<arr[i]<<" ";} cout<<endl;} 

class segmentTree{
    public:
    vector<ll>segTree;
    vector<ll>segArr;

    segmentTree(ll n){
        segArr.resize(n);
        segTree.resize(4*n);
    }   

    void build(ll node,ll start,ll end){
        if(start==end){
            segTree[node]=segArr[start];
            return;
        }
        ll mid = start+(end-start)/2;
        build(2*node,start,mid);
        build(2*node+1,mid+1,end);
        segTree[node]=max(segTree[2*node],segTree[2*node+1]);
    }

    ll query(ll node,ll start,ll end,ll l,ll r){
        if(l>end||r<start){
            return LONG_LONG_MIN;
        }
        if(l<=start&&r>=end){
            return segTree[node];
        }
        ll mid = start+(end-start)/2;
        auto p1 = query(2*node,start,mid,l,r);
        auto p2 = query(2*node+1,mid+1,end,l,r);
        return max(p1,p2);
    }

    void update(ll node,ll start,ll end,ll index,ll value){
        if(start==end){
            segArr[start]=value;
            segTree[node]=value;
            return;
        }
        ll mid = start+(end-start)/2;
        if(mid>=index){
            update(2*node,start,mid,index,value);
        }
        else{
            update(2*node+1,mid+1,end,index,value);
        }
        segTree[node]=max(segTree[2*node],segTree[2*node+1]);
    }
};

class LazySegTreeMaxMin {
    public:
    vector<ll>segTree;
    vector<ll>segArr;
    vector<ll>lazy;

    LazySegTreeMaxMin(ll n){
        segArr.resize(n);
        segTree.resize(4*n);
        lazy.resize(4*n);
    }  

    void push(ll node){
        lazy[2*node]+=lazy[node];
        lazy[2*node+1]+=lazy[node];
        segTree[2*node]+=lazy[node];
        segTree[2*node+1]+=lazy[node];
        lazy[node]=0;
    } 

    void build(ll node,ll start,ll end){
        if(start==end){
            segTree[node]=segArr[start];
            //cout<<"node = "<<node<<" for range = "<<start<<" "<<end<<endl;
            return;
        }
        ll mid = start+(end-start)/2;
        build(2*node,start,mid);
        build(2*node+1,mid+1,end);
        segTree[node]=max(segTree[2*node],segTree[2*node+1]);
        // cout<<"node = "<<node<<" for range = "<<start<<" "<<end<<endl;
    }

    ll query(ll node,ll start,ll end,ll l,ll r){
        if(l>end||r<start){
            return LONG_LONG_MIN;
        }
        if(l<=start&&r>=end){
            return segTree[node];
        }
        push(node);
        ll mid = start+(end-start)/2;
        auto p1 = query(2*node,start,mid,l,min(r,mid));
        auto p2 = query(2*node+1,mid+1,end,max(l,mid+1),r);
        return max(p1,p2);
    }

    void update(ll node,ll start,ll end,ll l,ll r,ll value){
        if(l>end||r<start){
            return;
        }
        if(l<=start&&r>=end){
            lazy[node]+=value;
            segTree[node]+=value;
        }
        else{
            push(node);
            ll mid = start+(end-start)/2;
            update(2*node,start,mid,l,min(r,mid),value);
            update(2*node+1,mid+1,end,max(l,mid+1),r,value);
            segTree[node]=max(segTree[2*node],segTree[2*node+1]);
        }
    }
};


class LazySegTreeSum {
    public:
    vector<vector<ll>>segTree;
    vector<vector<ll>>segArr;
    vector<vector<ll>>lazy;
    vector<ll>length;
    vector<ll>a;
    vector<ll>b;
    vector<ll>c;
    ll mod = 998244353;
    LazySegTreeSum(ll n){
        segArr=vector<vector<ll>>(n,vector<ll>(3));
        segTree=vector<vector<ll>>(4*n,vector<ll>(3));
        lazy=vector<vector<ll>>(4*n,vector<ll>(3));
        length = vector<ll>(4*n);
    }  

    void push(ll node,ll addA,ll addB){
        lazy[node][0]=(lazy[node][0]+addA)%mod;
        lazy[node][1]=(lazy[node][1]+addB)%mod;
        ll len = length[node];
        segTree[node][2]=(segTree[node][2]+(addA*segTree[node][1])%mod+(addB*segTree[node][0])%mod+addA*addB%mod*len)%mod;
        segTree[node][0]=(segTree[node][0]+addA*len)%mod;
        segTree[node][1]=(segTree[node][1]+addB*len)%mod;
    } 

    void down(ll node){
        push(2*node,lazy[node][0],lazy[node][1]);
        push(2*node+1,lazy[node][0],lazy[node][1]);
        lazy[node][0]=0;
        lazy[node][1]=0;
    }

    void build(ll node,ll start,ll end){
        length[node]=end-start+1;
        if(start==end){
            segTree[node][0]=a[start];
            segTree[node][1]=b[start];
            segTree[node][2]=c[start];
            //cout<<"node = "<<node<<" for range = "<<start<<" "<<end<<endl;
            return;
        }
        ll mid = start+(end-start)/2;
        build(2*node,start,mid);
        build(2*node+1,mid+1,end);
        for(ll j=0;j<=2;++j){   
            segTree[node][j]=segTree[2*node][j]+segTree[2*node+1][j];
            segTree[node][j]%=mod;
        }
        // cout<<"node = "<<node<<" for range = "<<start<<" "<<end<<endl;
    }

    ll query(ll node,ll start,ll end,ll l,ll r){
        if(l>r){
            return 0;
        }
        if(l<=start&&r>=end){
            return segTree[node][2]%mod;
        }
        down(node);
        ll mid = start+(end-start)/2;
        ll p1 = query(2*node,start,mid,l,min(r,mid));
        ll p2 = query(2*node+1,mid+1,end,max(l,mid+1),r);
        return ((p1%mod)+(p2%mod))%mod;
    }

    void update(ll node,ll start,ll end,ll l,ll r,ll pos,ll value){
        if(l>r){
            return;
        }
        if(l<=start&&r>=end){
            // cout<<"start = "<<start<<" end = "<<end<<endl;
            push(node,!pos?value:0,pos?value:0);
        }
        else{
            down(node);
            ll mid = start+(end-start)/2;
            update(2*node,start,mid,l,min(r,mid),pos,value);
            update(2*node+1,mid+1,end,max(l,mid+1),r,pos,value);
            // cout<<"Here, start = "<<start<<" end = "<<end<<endl;
            // ll originalVal = segTree[node][pos];
            segTree[node][pos]=segTree[2*node][pos]+segTree[2*node+1][pos];
            segTree[node][pos]%=mod;
            segTree[node][1-pos]=segTree[2*node][1-pos]+segTree[2*node+1][1-pos];
            segTree[node][1-pos]%=mod;
            segTree[node][2]=segTree[2*node][2]+segTree[2*node+1][2]; 
            segTree[node][2]%=mod;
        }
    }
};

struct two_sat {
    ll n;
    vector<vector<ll>> g, gr;
    vector<ll> comp, topological_order, answer;
    vector<bool> vis;

    two_sat() {}

    two_sat(ll _n) { init(_n); }

    void init(ll _n) {
        n = _n;
        g.assign(2 * n+5, vector<ll>());
        gr.assign(2 * n+5, vector<ll>());
        comp.resize(2 * n+5);
        vis.resize(2 * n+5);
        answer.resize(2 * n+5);
    }

    void add_edge(ll u, ll v) {
        g[u].push_back(v);
        gr[v].push_back(u);
    }

    // At least one of them is true
    void add_clause_or(ll i, bool f, ll j, bool g) {
        add_edge(i + (f ? n : 0), j + (g ? 0 : n));
        add_edge(j + (g ? n : 0), i + (f ? 0 : n));
    }

    // Only one of them is true
    void add_clause_xor(ll i, bool f, ll j, bool g) {
        add_clause_or(i, f, j, g);
        add_clause_or(i, !f, j, !g);
    }

    // Both of them have the same value
    void add_clause_and(ll i, bool f, ll j, bool g) {
        add_clause_xor(i, !f, j, g);
    }

    void dfs(ll u) {
        vis[u] = true;
        for (const auto &v : g[u])
            if (!vis[v]) dfs(v);
        topological_order.push_back(u);
    }

    void scc(ll u, ll id) {
        vis[u] = true;
        comp[u] = id;
        for (const auto &v : gr[u])
            if (!vis[v]) scc(v, id);
    }

    bool satisfiable() {
        fill(vis.begin(), vis.end(), false);

        for (ll i = 1; i <= 2 * n; i++)
            if (!vis[i]) dfs(i);

        fill(vis.begin(), vis.end(), false);
        reverse(topological_order.begin(), topological_order.end());

        ll id = 0;
        for (const auto &v : topological_order)
            if (!vis[v]) scc(v, id++);

        for (ll i = 1; i <= n; i++) {
            if (comp[i] == comp[i + n]) return false;
            answer[i] = (comp[i] > comp[i + n] ? 1 : 0);
        }
        return true;
    }
};

// unordered_map<ll,ll,custom_hash>compressedCoordinate;
// ll max_coord=0;
// void coordinateCompression(vector<ll>&arr){
//     vector<ll>temp = arr;
//     ll _id = 1;
//     sort(temp.begin(),temp.end());
//     for(auto &elem:temp){
//         if(!compressedCoordinate.count(elem)){
//             compressedCoordinate[elem]=_id;
//             max_coord = max(max_coord,_id);
//             _id++;
//         }
//     }
// }

// vector<ll> manacher_odd(string &s){
//     ll n = s.length();
//     s = "$"+s+"^";
//     vector<ll>p(n+2);
//     ll l=1,r=1;
//     for(ll i=1;i<=n;++i){
//         p[i]=max(0,min(r-i,p[l+(r-i)]));
//         while(s[i-p[i]]==s[i+p[i]]){
//             p[i]++;
//         }
//         if(i+p[i]>r){
//             l = i-p[i];
//             r = i+p[i];
//         }
//     }
//     return {p.begin()+1,p.end()-1};
// }

// vector<ll> manacher(string s) {
//     string str;
//     for(auto &ch:s){
//         str.push_back('#');
//         str.push_back(ch);
//     }
//     str.push_back('#');
//     vector<ll>arr = manacher_odd(str);
//     return {arr.begin()+1,arr.end()-1};
// }
ll mod = 998244353;
unordered_map<char,ll>mp={{'A',0},{'B',1}};
ll K;
bool isPalindrome(ll currMask){
    ll start = 0;
    ll end = K-1;
    while(start<end){
        if((currMask&(1<<start))&&(currMask&(1<<end))){
            start++;
            end--;
        }
        else if(!(currMask&(1<<start))&&!(currMask&(1<<end))){
            start++;
            end--;
        }
        else{
            return false;
        }
    }
    return true;
}
ll dp[1001][(1<<10)+9];
ll helper(ll idx,ll n,string &str,ll k,ll mask){
    if(idx>=n){
        if(isPalindrome(mask)){
            return 0;
        }
        return 1;
    }
    if(idx>=k&&isPalindrome(mask)){
        return 0;
    }
    if(dp[idx][mask]!=-1){
        return dp[idx][mask];
    }
    ll pos = (idx<=k-1)?k-1-idx:0;
    ll superMask = (1<<k)-1;
    ll currMask = (idx<=k-1)?mask:(mask<<1)&superMask;
    ll newMask;
    ll ans = 0;
    // cout<<"Initially "<<endl;
    if(str[idx]=='?'){
        newMask=currMask|(mp['B'])<<pos;
        ans+=helper(idx+1,n,str,k,newMask);
        ans%=mod;
        newMask=currMask|(mp['A'])<<pos;
        ans+=helper(idx+1,n,str,k,newMask);
        ans%=mod;
    }
    else{
        newMask=currMask|(mp[str[idx]])<<pos;
        ans+=helper(idx+1,n,str,k,newMask);
        ans%=mod;
    }
    return dp[idx][mask]=ans%mod;
}
void solve(bool printTestcase){
    ll n,k;
    cin>>n>>k;
    K = k;
    string str;
    cin>>str;
    memset(dp,-1,sizeof(dp));
    cout<<helper(0,n,str,k,0)<<endl;
}   

int main() {
    cout.precision(10); cout.setf(ios::fixed);
    ios_base::sync_with_stdio(false);
	cin.tie(NULL);
    cout.tie(NULL);
    #ifndef ONLINE_JUDGE
		freopen("input.txt", "r", stdin);
		freopen("output.txt", "w", stdout);
	#endif
    ll t=1;
    // cin>>t;
    for(ll i=1;i<=t;++i){
        solve(false);
    }
}

提出情報

提出日時
問題 D - Avoid K Palindrome
ユーザ AvaraKedavra
言語 C++ 20 (gcc 12.2)
得点 450
コード長 16736 Byte
結果 AC
実行時間 35 ms
メモリ 19276 KiB

コンパイルエラー

Main.cpp: In function ‘bool isSorted(std::vector<long long int>&)’:
Main.cpp:115:44: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  115 | bool isSorted(vector<ll>&vect){for(ll i=1;i<vect.size();++i){if(vect[i]<vect[i-1]){return false;}}return true;}
      |                                           ~^~~~~~~~~~~~
Main.cpp: In function ‘void print(std::vector<long long int>&, long long int)’:
Main.cpp:131:56: warning: comparison of integer expressions of different signedness: ‘long long int’ and ‘std::vector<long long int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  131 | void print(vector<ll>&arr,ll index=0){ for(ll i=index;i<arr.size();++i){ cout<<arr[i]<<" ";} cout<<endl;}
      |                                                       ~^~~~~~~~~~~
Main.cpp: In function ‘void solve(bool)’:
Main.cpp:516:17: warning: unused parameter ‘printTestcase’ [-Wunused-parameter]
  516 | void solve(bool printTestcase){
      |            ~~~~~^~~~~~~~~~~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 450 / 450
結果
AC × 4
AC × 76
セット名 テストケース
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt, 01_random_49.txt, 01_random_50.txt, 01_random_51.txt, 01_random_52.txt, 01_random_53.txt, 01_random_54.txt, 01_random_55.txt, 01_random_56.txt, 01_random_57.txt, 01_random_58.txt, 01_random_59.txt, 01_random_60.txt, 01_random_61.txt, 01_random_62.txt, 01_random_63.txt, 01_random_64.txt, 01_random_65.txt, 01_random_66.txt, 01_random_67.txt, 01_random_68.txt, 01_random_69.txt, 01_random_70.txt, 01_random_71.txt, 01_random_72.txt, 01_random_73.txt, 01_random_74.txt, 01_random_75.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 6 ms 18992 KiB
00_sample_01.txt AC 7 ms 18816 KiB
00_sample_02.txt AC 7 ms 18872 KiB
00_sample_03.txt AC 6 ms 18968 KiB
01_random_04.txt AC 35 ms 19272 KiB
01_random_05.txt AC 19 ms 19252 KiB
01_random_06.txt AC 34 ms 19072 KiB
01_random_07.txt AC 34 ms 19128 KiB
01_random_08.txt AC 7 ms 19216 KiB
01_random_09.txt AC 21 ms 19164 KiB
01_random_10.txt AC 7 ms 18992 KiB
01_random_11.txt AC 7 ms 18956 KiB
01_random_12.txt AC 6 ms 18936 KiB
01_random_13.txt AC 8 ms 19176 KiB
01_random_14.txt AC 7 ms 18916 KiB
01_random_15.txt AC 13 ms 19216 KiB
01_random_16.txt AC 7 ms 19256 KiB
01_random_17.txt AC 34 ms 19268 KiB
01_random_18.txt AC 6 ms 18936 KiB
01_random_19.txt AC 7 ms 18916 KiB
01_random_20.txt AC 7 ms 18804 KiB
01_random_21.txt AC 7 ms 18812 KiB
01_random_22.txt AC 7 ms 18808 KiB
01_random_23.txt AC 7 ms 18808 KiB
01_random_24.txt AC 7 ms 19132 KiB
01_random_25.txt AC 34 ms 19180 KiB
01_random_26.txt AC 6 ms 18992 KiB
01_random_27.txt AC 6 ms 18772 KiB
01_random_28.txt AC 7 ms 18916 KiB
01_random_29.txt AC 8 ms 19188 KiB
01_random_30.txt AC 7 ms 18892 KiB
01_random_31.txt AC 13 ms 19156 KiB
01_random_32.txt AC 8 ms 19220 KiB
01_random_33.txt AC 34 ms 19168 KiB
01_random_34.txt AC 6 ms 18876 KiB
01_random_35.txt AC 6 ms 18972 KiB
01_random_36.txt AC 6 ms 18936 KiB
01_random_37.txt AC 7 ms 18876 KiB
01_random_38.txt AC 12 ms 19164 KiB
01_random_39.txt AC 12 ms 19068 KiB
01_random_40.txt AC 9 ms 19184 KiB
01_random_41.txt AC 34 ms 19136 KiB
01_random_42.txt AC 6 ms 18992 KiB
01_random_43.txt AC 6 ms 18892 KiB
01_random_44.txt AC 6 ms 18996 KiB
01_random_45.txt AC 7 ms 18892 KiB
01_random_46.txt AC 7 ms 18872 KiB
01_random_47.txt AC 8 ms 19184 KiB
01_random_48.txt AC 13 ms 19168 KiB
01_random_49.txt AC 19 ms 19068 KiB
01_random_50.txt AC 6 ms 18892 KiB
01_random_51.txt AC 6 ms 18956 KiB
01_random_52.txt AC 6 ms 18956 KiB
01_random_53.txt AC 6 ms 18876 KiB
01_random_54.txt AC 6 ms 18908 KiB
01_random_55.txt AC 9 ms 19160 KiB
01_random_56.txt AC 7 ms 19156 KiB
01_random_57.txt AC 35 ms 19160 KiB
01_random_58.txt AC 6 ms 18868 KiB
01_random_59.txt AC 6 ms 18868 KiB
01_random_60.txt AC 6 ms 18932 KiB
01_random_61.txt AC 6 ms 18876 KiB
01_random_62.txt AC 6 ms 18872 KiB
01_random_63.txt AC 8 ms 19216 KiB
01_random_64.txt AC 35 ms 19180 KiB
01_random_65.txt AC 21 ms 19232 KiB
01_random_66.txt AC 6 ms 19012 KiB
01_random_67.txt AC 7 ms 18916 KiB
01_random_68.txt AC 7 ms 18996 KiB
01_random_69.txt AC 6 ms 18968 KiB
01_random_70.txt AC 7 ms 18868 KiB
01_random_71.txt AC 6 ms 18868 KiB
01_random_72.txt AC 20 ms 19152 KiB
01_random_73.txt AC 20 ms 19180 KiB
01_random_74.txt AC 7 ms 18904 KiB
01_random_75.txt AC 35 ms 19276 KiB