Submission #845653

#TimeUsernameProblemLanguageResultExecution timeMemory
845653vjudge1Skandi (COCI20_skandi)C++17
0 / 110
2 ms348 KiB
#pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include <bits/stdc++.h> using namespace std; #define int long long const int INF = 1e9 + 7; #ifndef ONLINE_JUDGE #define OPEN freopen(".in", "r", stdin); \ freopen(".out", "w", stdout); #else #define OPEN void(23); #endif char arr[505][505]; int n, m; bool check() { bool ok = true; for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) ok &= (arr[i][j] != '0'); return ok; } int ans = INF; inline void f(int adim) { /* for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) cerr << arr[i][j] << " \n"[j == m]; cerr << "\n"; */ if(check()) { ans = min(ans, adim); return; } for(int i = 1; i <= n; i++) { for(int j = 1; j <= m; j++) { if(arr[i][j] == '1') { bool change = false; vector <pair <int, int>> vec; for(int k = j +1; k <= m; k++) { if(arr[i][k] == '1') break; change |= arr[i][k] == '0'; if(arr[i][k] == '0') vec.emplace_back(i, k); } if(change) { for(auto &[a, b] : vec) arr[a][b] = '2'; f(adim +1); for(auto &[a, b] : vec) arr[a][b] = '0'; } change = false; vec.clear(); for(int k = i +1; k <= n; k++) { if(arr[k][j] == '1') break; change |= arr[k][j] == '0'; if(arr[k][j] == '0') vec.emplace_back(k, j); } if(change) { for(auto &[a, b] : vec) arr[a][b] = '2'; f(adim +1); for(auto &[a, b] : vec) arr[a][b] = '0'; } } } } } void solve() { cin >> n >> m; for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) cin >> arr[i][j]; f(0); cout << ans; return; } int32_t main() { OPEN; ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t = 1; //cin >> t; while(t--) { solve(); } }

Compilation message (stderr)

skandi.cpp: In function 'int32_t main()':
skandi.cpp:10:25: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   10 |     #define OPEN freopen(".in", "r", stdin); \
      |                  ~~~~~~~^~~~~~~~~~~~~~~~~~~
skandi.cpp:98:5: note: in expansion of macro 'OPEN'
   98 |     OPEN;
      |     ^~~~
skandi.cpp:11:25: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |                  freopen(".out", "w", stdout);
      |                  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
skandi.cpp:98:5: note: in expansion of macro 'OPEN'
   98 |     OPEN;
      |     ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...