Submission #935520

# Submission time Handle Problem Language Result Execution time Memory
935520 2024-02-29T08:34:17 Z billyisme Ancient Machine (JOI21_ancient_machine) C++17
5 / 100
34 ms 6136 KB
/***************************************************************
*             Author : Nguyen Trong Van Viet                   *
*                        Age : 17                              *
*      School : 12T2 Le Khiet High School for the Gifted       *
*            Hometown :  Quang Ngai , Viet Nam .               *
* Khanh An is my lover :) the more I code  , the nearer I am   *
****************************************************************/
#define TASK "text"
#define INPUT TASK".INP" 
#define OUTPUT TASK".OUT"

bool mtt = 0 ;
int test = 1 ;  

#include<bits/stdc++.h>
using namespace std; 

#define             ll  long long 
#define             db  double 
#define             ve  vector 
#define             vi  vector<int>
#define            vll  vector<ll>
#define            str  string
#define             pb  push_back
#define             pk  pop_back
#define             el  '\n'
#define            pii  pair<int,int>
#define            pll  pair<ll,ll>
#define             mp  make_pair 
#define             fi  first 
#define             se  second
#define         uni(a)  sort(all(a)),a.resize(unique(all(a))-a.begin()) 
#define     FOR(i,a,b)  for(int i=(int)(a);i<=(int)(b);i++)
#define    FORD(i,a,b)  for(int i=(int)(a);i>=(int)(b);i--)
#define    FORN(i,a,b)  for(int i=(int)(a);i<(int)(b);i++)
#define         all(a)  a.begin(),a.end()  
#define             LB  lower_bound
#define             UB  upper_bound 
#define            tct  template<class T>
#define     BIT(msk,i)  (msk>>(i)&1)
#define        M(i)  (1ll<<(i))
#define          SZ(_)  (int)(_.size())
#define           btpc  __builtin_popcountll
#define            ctz  __builtin_ctzll 
ll lg(ll a){return __lg(a);}
ll sq(ll a){return a*a;}  
ll gcd(ll a,ll b){return __gcd(a,b);} 
ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
ll rd(ll l , ll r ){return l+1LL*rand()*rand()%(r-l+1);}
#define prt(a,n) {FOR(_i,1,n)cout<<a[_i]<<" ";cout<<el;}
#define prv(a) {for(auto _v:a)cout<<_v<<" "; cout<<el;} 

int xx[] = {0,-1,0,1} ; 
int yy[] = {-1,0,1,0} ;

const db PI = acos(-1) , EPS = 1e-9;
const ll inf = 1e18 , cs = 331 , sm = 1e9+7; 
const int N = 2e5+5 , oo = 2e9 , LO = 17 , CH = 26 ; 

tct bool mini(T& a,T b){return (a>b)?a=b,1:0;}
tct bool maxi(T& a,T b){return (a<b)?a=b,1:0;} 

void add(ll& a , ll b){a+=b;if(a>=sm)a-=sm;}
void sub(ll& a , ll b){a-=b;if(a<0)a+=sm;}


/*  DON'T BELIEVE LOVE WILL INSPIRE YOU ->  TRAIN HARDER ->  YOU WILL GET THE LOVE YOU WANT !!*/
#include "Anna.h" 

 
void Anna(int n , ve<char>S)
{   
    string up ; 
    FORN(i,0,n)
    {
        if(S[i]=='X')up+="00" ;
        if(S[i]=='Y')up+="01" ; 
        if(S[i]=='Z')up+="10" ; 
    }
    for(auto x : up)Send(x-'0') ;
}
/***************************************************************
*             Author : Nguyen Trong Van Viet                   *
*                        Age : 17                              *
*      School : 12T2 Le Khiet High School for the Gifted       *
*            Hometown :  Quang Ngai , Viet Nam .               *
* Khanh An is my lover :) the more I code  , the nearer I am   *
****************************************************************/
#define TASK "text"
#define INPUT TASK".INP" 
#define OUTPUT TASK".OUT"

bool mtt = 0 ;
int test = 1 ;  

#include<bits/stdc++.h>
using namespace std; 

#define             ll  long long 
#define             db  double 
#define             ve  vector 
#define             vi  vector<int>
#define            vll  vector<ll>
#define            str  string
#define             pb  push_back
#define             pk  pop_back
#define             el  '\n'
#define            pii  pair<int,int>
#define            pll  pair<ll,ll>
#define             mp  make_pair 
#define             fi  first 
#define             se  second
#define         uni(a)  sort(all(a)),a.resize(unique(all(a))-a.begin()) 
#define     FOR(i,a,b)  for(int i=(int)(a);i<=(int)(b);i++)
#define    FORD(i,a,b)  for(int i=(int)(a);i>=(int)(b);i--)
#define    FORN(i,a,b)  for(int i=(int)(a);i<(int)(b);i++)
#define         all(a)  a.begin(),a.end()  
#define             LB  lower_bound
#define             UB  upper_bound 
#define            tct  template<class T>
#define     BIT(msk,i)  (msk>>(i)&1)
#define        M(i)  (1ll<<(i))
#define          SZ(_)  (int)(_.size())
#define           btpc  __builtin_popcountll
#define            ctz  __builtin_ctzll 
ll lg(ll a){return __lg(a);}
ll sq(ll a){return a*a;}  
ll gcd(ll a,ll b){return __gcd(a,b);} 
ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
ll rd(ll l , ll r ){return l+1LL*rand()*rand()%(r-l+1);}
#define prt(a,n) {FOR(_i,1,n)cout<<a[_i]<<" ";cout<<el;}
#define prv(a) {for(auto _v:a)cout<<_v<<" "; cout<<el;} 

int xx[] = {0,-1,0,1} ; 
int yy[] = {-1,0,1,0} ;

const db PI = acos(-1) , EPS = 1e-9;
const ll inf = 1e18 , cs = 331 , sm = 1e9+7; 
const int N = 2e5+5 , oo = 2e9 , LO = 17 , CH = 26 ; 

tct bool mini(T& a,T b){return (a>b)?a=b,1:0;}
tct bool maxi(T& a,T b){return (a<b)?a=b,1:0;} 

void sub(ll& a , ll b){a-=b;if(a<0)a+=sm;}


/*  DON'T BELIEVE LOVE WILL INSPIRE YOU ->  TRAIN HARDER ->  YOU WILL GET THE LOVE YOU WANT !!*/
#include "Bruno.h"
const int M = 500 ; 
void Remove(int d);
int a[M] ;
const int MSK = M(18) ; 
int f[MSK] ; 
int trace[MSK] ; 
int n ; 
int dfs(int msk)
{
    if(msk==0)return 0 ;
    if(f[msk]!=-1)return f[msk] ;
    FORN(i,0,n)if(msk>>i&1)
    {
        bool ok = (a[i]==1) ;
        if(ok)
        {
            int exist = 0 ; 
            FORD(j,i-1,0)if(msk>>j&1)
            {   
                ok&=(a[j]==0) ;
                exist=1 ;
                break; 
            }
            ok&=exist;
        }
        if(ok)
        {
            int exist = 0; 
            FORN(j,i+1,n)if(msk>>j&1)
            {
                exist = 1; 
                ok&=(a[j]==2);
                break;
            }
            ok&=exist;
        }
        if(f[msk]<dfs(msk^M(i))+ok)
        {
            f[msk]=dfs(msk^M(i))+ok;  
            trace[msk]=i ;
        }
    }
    return f[msk] ; 
}
void go(int msk)
{
    if(msk==0)return; 
    Remove(trace[msk]); 
    go(msk^M(trace[msk])) ; 
}
void Bruno(int N ,int L , vi A)
{      
    n = N ; 
    FORN(i,0,n)
    {
        a[i] = A[i*2]*2+A[i*2+1] ;
    }
    FOR(i,1,M(n)-1)f[i] =-1;
    int res = dfs((1<<n)-1) ;
    go((1<<n)-1) ;
}

Compilation message

Bruno.cpp: In function 'void Bruno(int, int, std::vector<int>)':
Bruno.cpp:126:9: warning: unused variable 'res' [-Wunused-variable]
  126 |     int res = dfs((1<<n)-1) ;
      |         ^~~
# Verdict Execution time Memory Grader output
1 Correct 19 ms 2860 KB Output is correct
2 Correct 20 ms 2844 KB Output is correct
3 Correct 20 ms 2840 KB Output is correct
4 Correct 19 ms 2868 KB Output is correct
5 Correct 20 ms 2828 KB Output is correct
6 Correct 23 ms 3012 KB Output is correct
7 Correct 0 ms 792 KB Output is correct
8 Correct 0 ms 776 KB Output is correct
9 Correct 16 ms 2840 KB Output is correct
10 Correct 21 ms 3336 KB Output is correct
11 Correct 17 ms 2824 KB Output is correct
# Verdict Execution time Memory Grader output
1 Runtime error 34 ms 6136 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -