Submission #690049

#TimeUsernameProblemLanguageResultExecution timeMemory
690049iskhakkutbilimRed-blue table (IZhO19_stones)C++14
32 / 100
78 ms3144 KiB
#include <bits/stdc++.h> using namespace std; //#define int long long #define ff first #define ss second #define all(a) a.begin(), a.end() int n, m, t; int calc(vector<vector<int> > &a){ int all = 0; for(int i = 0;i < n; i++){ int blue = 0; for(int j = 0;j < m; j++){ blue+= a[i][j]; } if(blue >= m-(m / 2) and blue > m/2) all++; } for(int j = 0;j < m; j++){ int red = 0; for(int i = 0;i < n; i++){ red+= (a[i][j] == 0); } if(red >= n-(n / 2) and red > n/2) all++; } return all; } void solve(){ cin >> n >> m; vector< vector<int> > a(n, vector<int>(m,0)); if(t <= 16 and max(n, m)<= 4){ int answer = 0, s = 0, MASK=0; vector<pair<int,int>> cell(n*m); for(int i = 0;i < n; i++){ for(int j = 0;j < m; j++){ cell[s] = {i, j}; s++; } } for(int mask = 0; mask < (1<<(n*m)); mask++){ for(int i = 0;i < n*m; i++){ if(mask & (1<<i)){ a[cell[i].ff][cell[i].ss] = 1; }else{ a[cell[i].ff][cell[i].ss] = 0; } } int S = calc(a); if(answer < S){ answer = S; MASK = mask; } } for(int i = 0;i < n*m; i++){ if(MASK & (1<<i)){ a[cell[i].ff][cell[i].ss] = 1; }else{ a[cell[i].ff][cell[i].ss] = 0; } } cout << answer << '\n'; for(int i = 0;i < n; i++){ for(int j = 0;j < m; j++){ cout << (a[i][j] ? '+' : '-'); } cout << '\n'; } return; } set<pair<int, int> > st; vector< pair<int, int> > del; for(int i = 0;i < m; i++){ st.insert({0, i}); } int need = max(n / 2+1, n-(n / 2)); for(int i = 0;!st.empty() and i < n; i++){ int cnt = need; for(pair<int, int> x : st){ if(cnt == 0) break; cnt--; if(x.ff== n-need){ st.clear(); break; } a[i][x.ss] = 1; del.push_back(x); } for(pair<int, int> x : del){ st.erase(x); st.insert({x.ff+1, x.ss}); } del.clear(); } cout << calc(a) << '\n'; for(int i = 0;i < n; i++){ for(int j = 0;j < m; j++){ cout << (a[i][j] ? '+' : '-'); } cout << '\n'; } } main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> t; while(t--){ solve(); } return 0; }

Compilation message (stderr)

stones.cpp:106:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
  106 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...