Submission #1231508

#TimeUsernameProblemLanguageResultExecution timeMemory
1231508djsksbrbfRed-blue table (IZhO19_stones)C++20
0 / 100
294 ms12116 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define pb push_back #define pii pair<int,int> #define fi first #define se second #define inf LLONG_MAX #define ti tuple<int,int,int> const int lim=1000; int grid[lim+100][lim+100]; int a[lim+100][lim+100]; int b[lim+100][lim+100]; int fg(int n,int m,int num){ memset(grid,0,sizeof(grid)); //awal dari cycle tsb int cnt=0; int rm=m/2+1; //red sampe kemana int maks=(n-1)/2; //ngisi berapa row int i=1; while(cnt<maks){ if(i > n)break; for(int j=1;j<=rm;j++) grid[i][j]++; i++; if(i > n) break; for(int j = m ; j >= m - rm ; j--)grid[i][j]++; cnt++; i++; } int ans=0; for(int i=1;i<=n;i++){ int cur=0; for(int j=1;j<=m;j++) if(grid[i][j]) cur++; if(cur>=rm)ans++; } for(int i=1;i<=m;i++){ int cur=0; for(int j=1;j<=n;j++) if(!grid[j][i]) cur++; if(cur>=n/2+1)ans++; } if(num==1){ for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ a[i][j]=grid[i][j]; // cout<<a[i][j]; } // cout<<endl; } } else{ for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ b[i][j]=grid[i][j]; } } } return ans; } signed main(){ int t;cin>>t;while(t--){ int n,m;cin>>n>>m; int aa=fg(n,m,1); int bb=fg(m,n,2); // for(int i = 1 ; i <= n ; i++){ // for(int j = 1 ; j <= m ; j++){ // cout << a[i][j]; // } // cout << endl; // } // // for(int i = 1 ; i <= m ; i++){ // for(int j = 1 ; j <= n ; j++){ // cout << b[i][j]; // } // cout << endl; // } if(aa>=bb){ cout<<aa<<endl; for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ if(a[i][j]) cout<<'+'; else cout<<'-'; } cout<<endl; } } else{ cout<<bb<<endl; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ if(b[i][j]) cout<<'-'; else cout<<'+'; } cout<<endl; } } //all blue // cout<<ans<<endl; // for(int i=1;i<=n;i++){ // for(int j=1;j<=m;j++){ // if(grid[i][j]) cout<<'-'; // else cout<<'+'; // } // cout<<endl; // } // cout<<endl; } } // Row red>blue // Col red<blue // val less than half // val more than half // +--+ // +--+ // ++++ // -++ // --- // --- // --- // +++- // ---- // ---- // +-++ // +-++ // ++ // ++ // ++ // ++ // +++ // +++ // +++ // case // 1. odd m -> bisa dibagi 2 // kiri // (m+1)/2 // (n+1)/2 -1 times // kanan // (m+1)/2+1 // (n+1)/2 -1 times // 2. even m
#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...