Submission #1050090

#TimeUsernameProblemLanguageResultExecution timeMemory
1050090vjudge1Dango Maker (JOI18_dango_maker)C++17
0 / 100
12 ms4580 KiB
#include <bits/stdc++.h> #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,lzcnt,mmx,abm,avx,avx2,fma") #pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,fast-math,inline") using namespace std; #define speed ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0) #define vc vector #define mp make_pair #define pb push_back #define fi first #define se second #define ll long long #define all(x) x.begin(),x.end() #define sz(x) (int)x.size() #define int ll const int N = 3005; const int M = 3005; const int mod = 1e9 + 7; const int block = 500; int n, m; char a[N][N]; bool used[N][N]; int tp[N][N]; void solve() { cin >> n >> m; for ( int i = 1; i <= n; i++ ) { for ( int j = 1; j <= m; j++ ) { cin >> a[i][j]; } } int k = n * m, res = 0; for ( int i = 0; i < (1<<k); i++ ) { for ( int i = 1; i <= n; i++ ) { for ( int j = 1; j <= m; j++ ) { used[i][j] = 0; tp[i][j] = 0; } } vc <int> save; for ( int p = 0; p < k; p++ ) { if ( ( i >> p ) & 1 ) { save.pb(p); } } if ( sz(save) > k / 3 ) { continue; } for ( auto p : save ) { for ( int j = 0; j < ( 1 << k ); j++ ) { int x = p / n + 1, y = ( p % m + 1 ); if ( ( j >> p ) & 1 ) { tp[x][y] = 2; } else { tp[x][y] = 1; } } } bool ok = 1; for ( int x = 1; x <= n; x++ ) { for ( int y = 1; y <= m; y++ ) { if ( tp[x][y] == 1 ) { string s = ""; s += a[x][y]; s += a[x][y+1]; s += a[x][y+2]; if ( y + 2 > m || used[x][y] || used[x][y+1] || used[x][y+2] || s != "RGW" ) ok = 0; else { used[x][y] = 1; used[x][y+1] = 1; used[x][y+2] = 1; } } else if ( tp[x][y] == 2 ) { string s = ""; s += a[x][y]; s += a[x+1][y]; s += a[x+2][y]; if ( x + 2 > n || used[x][y] || used[x+1][y] || used[x+2][y] || s != "RGW" ) ok = 0; else { used[x][y] = 1; used[x+1][y] = 1; used[x+2][y] = 1; } } } } if ( ok ) res = max(res,sz(save)); } cout << res; } signed main() { speed; int tt; //cin >> tt; tt = 1; while ( tt-- ) { solve(); cout << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...