/***************************************************************
* 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) ;
| ^~~
# |
결과 |
실행 시간 |
메모리 |
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 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Runtime error |
34 ms |
6136 KB |
Execution killed with signal 11 |
2 |
Halted |
0 ms |
0 KB |
- |