Submission #1201169

#TimeUsernameProblemLanguageResultExecution timeMemory
1201169RufatRed-blue table (IZhO19_stones)C++20
17 / 100
17 ms1352 KiB
/* ,----.. ____ ,----.. ,--, ,--, / / \ .--.--. ,----.. ,---,. ,---, ,---,. ,' , `.,-.----. ,---,. / / \ |'. \ / .`| / . : / / '. / / \ ,' .' | .' .' `\ ,' .' | ,-+-,.' _ |\ / \ ,--, ,' .' | / . : ; \ `\ /' / ; . / ;. \ : /`. / / . : ,---.' |,---.' \ ,---.' | ,-+-. ; , ||; : \ ,'_ /|,---.' | . / ;. \ `. \ / / .'. ; / ` ; | |--` . / ;. \ | | .'| | .`\ || | .' ,--.'|' | ;|| | .\ : .--. | | :| | .'. ; / ` ; \ \/ / ./ ; | ; \ ; | : ;_ . ; / ` ; : : |-,: : | ' |: : |-,| | ,', | ':. : |: | ,'_ /| : . |: : : ; | ; \ ; | \ \.' / | : | ; | '\ \ `. ; | ; \ ; | : | ;/|| ' ' ; :: | ;/|| | / | | ||| | \ : | ' | | . .: | |-,| : | ; | ' \ ; ; . | ' ' ' : `----. \| : | ; | ' | : .'' | ; . || : .'' | : | : |,| : . / | | ' | | || : ;/|. | ' ' ' : / \ \ \ ' ; \; / | __ \ \ |. | ' ' ' : | | |-,| | : | '| | |-,; . | ; |--' ; | | \ : | | : ' ;| | .'' ; \; / | ; /\ \ \ \ \ ', / / /`--' /' ; \; / | ' : ;/|' : | / ; ' : ;/|| : | | , | | ;\ \| ; ' | | '' : ' \ \ ', / ./__; \ ; \ ; : / '--'. / \ \ ', . \| | \| | '` ,/ | | \| : ' |/ : ' | \.': | : ; ; || | | ; : / | : / \ \ ; \ \ .' `--'---' ; : ; | : .'; : .' | : .'; | |`-' : : :-' ' : `--' \ : \ \ \ .' ; |/ \ ' | `---` \ \ .'`--"| | ,' | ,.' | | ,' | ;/ | |.' : , .-./ | ,' `---` `---' `--` `---` `----' '---' `----' '---' `---' `--`----' `----' */ //Author RufatM /*#pragma GCC optimize("Ofast") #pragma GCC target("avx,avx2,fma") #pragma GCC optimize("unroll-loops") #pragma GCC optimize("fast-math") #pragma GCC optimize("inline") #pragma GCC optimize("tree-vectorize") #pragma GCC optimize("loop-vectorize") #pragma GCC optimize("loop-interchange") #pragma GCC optimize("loop-block") #pragma GCC optimize("loop-strip-mine") #pragma GCC optimize("loop-optimize") #pragma GCC optimize("tree-loop-distribute-patterns") #pragma GCC optimize("tree-loop-distribute-force") #pragma GCC optimize("tree-loop-distribute") #pragma GCC optimize("tree-loop-vectorize") #pragma GCC optimize("tree-loop-ivcanon") #pragma GCC optimize("tree-loop-ivopts") */ #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #include <ext/pb_ds/detail/standard_policies.hpp> using namespace __gnu_pbds; using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; typedef vector<int> vi; typedef vector<vector<int>> vvi; typedef vector<ll> vll; typedef vector<pii> vpii; typedef vector<vector<pii>> vvp; typedef vector<bool> vb; typedef vector<string> vs; #define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define endl '\n' #define pb push_back #define pf push_front #define eb emplace_back #define ff first #define ss second #define all(x) begin(x), end(x) #define rall(x) rbegin(x), rend(x) #define mt19937_64 mt_rand(chrono::steady_clock::now().time_since_epoch().count()) typedef tree<pii, null_type, less<pii>, rb_tree_tag, tree_order_statistics_node_update> ordered_multiset; template<typename T> bool isPrime(T n) { if (n <= 1)return false;if (n <= 3)return true;if (n % 2 == 0 || n % 3 == 0)return false;for (T i = 5;i * i <= n;i += 6)if (n % i == 0 || n % (i + 2) == 0)return false;return true; } const int MOD = 1e9 + 7; const int INF = 1e9 + 7; const int LOG = 21; const long long LINF = 1e18 + 7; const int MAXN = 1e5 + 7; signed main(){ fastio; int t; cin >> t; while(t--){ int n, m; cin >> n >> m; if(n == 1){ cout << m << endl; cout << string(m, '-') << endl; continue; } if(m == 1){ cout << n << endl; for(int i = 0; i < n; i++){ cout << "+" << endl; } continue; } int dmax = (m - 1) / 2; int need = (n / 2) + 1; int best = -1, bestk = 0, bestb = 0; for(int k = 0; k <= n; k++){ ll total = ll(k) * dmax + ll(n - k) * m; ll b = total / need; if(b > m) b = m; int score = k + b; if(score > best){ best = score; bestk = k; bestb = b; } } vs g(n, string(m, '+')); vector<int> cap(n); for(int i = 0; i < n; i++){ cap[i] = (i < bestk ? dmax : m); } priority_queue<pii> pq; for(int i = 0; i < n; i++){ if(cap[i] > 0) pq.push({cap[i], i}); } for(int j = 0; j < bestb; j++){ int rem = need; while(rem--){ auto [c, i] = pq.top(); pq.pop(); g[i][j] = '-'; c--; if(c > 0) pq.push({c, i}); } } cout << best << endl; for(int i = 0; i < n; i++){ cout << g[i] << endl; } } }
#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...