Submission #1156456

#TimeUsernameProblemLanguageResultExecution timeMemory
1156456ghammazhassanRed-blue table (IZhO19_stones)C++20
100 / 100
29 ms19016 KiB
// #include <bits/stdc++.h> #include <iostream> #include <cmath> #include <algorithm> #include <map> #include <vector> #include <iomanip> #include <string> #include <queue> #include <set> #include <deque> using namespace std; #define int long long const int N=1e6+5; const int M=998244353; const int LOG = 20; int n , m , k , c , t=1 , q=1 , x , y , p[N]; int sg[LOG][N]; vector<int>a(N),b(N); void makesg(){ for (int i=0;i<N;i++){ sg[0][i]=b[i]; } for (int j=1;j<LOG;j++){ for (int i=(int)pow(2,j)-1;i<N;i++){ sg[j][i]=max(sg[j-1][i],sg[j-1][i-(int)pow(2,j-1)]); } } } int lr(int l,int r){ int x=log2(r-l+1); return max(sg[x][r],sg[x][l+(int)pow(2,x)-1]); } void solve() { cin >> n >> m; if (n>=m){ string s; swap(n,m); for (int i=0;i<m;i++){ s+='-'; } vector<string>a(n,s); vector<int>p1(m,n); int x=n/2+1; int d=m; int k=n*m; vector<pair<int,int>>f(m); for (int i=0;i<m;i++){ f[i]={n,i}; } for (int i=0;i<n;i++){ sort(f.rbegin(),f.rend()); int c=0; for (int j=0;j<m;j++){ if (c>m/2){ break; } if (f[j].first==x)continue; f[j].first--; a[i][f[j].second]='+'; k--; c++; } d+=c>m/2; } string h; for (int i=0;i<n;i++){ h+='-'; } vector<string>b(m,h); for (int i=0;i<m;i++){ for (int j=0;j<n;j++){ if (a[j][i]=='-'){ b[i][j]='+'; } } } // cout << k << " " << n*m-k << endl; cout << d << endl; for (string p:b){ cout << p << endl; } return; } string s; for (int i=0;i<m;i++){ s+='-'; } vector<string>a(n,s); vector<int>p1(m,n); int x=n/2+1; int d=m; int k=n*m; vector<pair<int,int>>f(m); for (int i=0;i<m;i++){ f[i]={n,i}; } for (int i=0;i<n;i++){ sort(f.rbegin(),f.rend()); int c=0; for (int j=0;j<m;j++){ if (c>m/2){ break; } if (f[j].first==x)continue; f[j].first--; a[i][f[j].second]='+'; k--; c++; } d+=c>m/2; } // cout << k << " " << n*m-k << endl; cout << d << endl; for (string p:a){ cout << p << endl; } } signed main() { ios::sync_with_stdio(0);//DO NOT USE IN INTERACTIVE cin.tie(0), cout.tie(0);//DO NOT USE IN INTERACTIVE cout << fixed<<setprecision(9); // int t=1; cin >> t; for (int _=1;_<=t;_++){ solve(); q++; } }
#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...