Submission #905770

#TimeUsernameProblemLanguageResultExecution timeMemory
905770vjudge1Red-blue table (IZhO19_stones)C++17
0 / 100
2044 ms668 KiB
#include <bits/stdc++.h> using namespace std; /* #pragma GCC optimize("Ofast") #pragma comment(linker, "/stack:200000000") #pragma GCC target( "sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native" ) #pragma GCC optimize("unroll-loops") #pragma GCC optimize("profile-values,profile-reorder-functions,tracer") #pragma GCC optimize("vpt") #pragma GCC optimize("rename-registers") #pragma GCC optimize("move-loop-invariants") #pragma GCC optimize("unswitch-loops") #pragma GCC optimize("function-sections") #pragma GCC optimize("data-sections") #pragma GCC optimize("branch-target-load-optimize") #pragma GCC optimize("branch-target-load-optimize2") #pragma GCC optimize("btr-bb-exclusive") #pragma GCC optimize("inline") #pragma GCC optimize("-fgcse") #pragma GCC optimize("-fgcse-lm") #pragma GCC optimize("-fipa-sra") #pragma GCC optimize("-ftree-pre") #pragma GCC optimize("-ftree-vrp") #pragma GCC optimize("-fpeephole2") #pragma GCC optimize("-ffast-math") #pragma GCC optimize("-fsched-spec") #pragma GCC optimize("-falign-jumps") #pragma GCC optimize("-falign-loops") #pragma GCC optimize("-falign-labels") #pragma GCC optimize("-fdevirtualize") #pragma GCC optimize("-fcaller-saves") #pragma GCC optimize("-fcrossjumping") #pragma GCC optimize("-fthread-jumps") #pragma GCC optimize("-freorder-blocks") #pragma GCC optimize("-fschedule-insns") #pragma GCC optimize("inline-functions") #pragma GCC optimize("-ftree-tail-merge") #pragma GCC optimize("-fschedule-insns2") #pragma GCC optimize("-fstrict-aliasing") #pragma GCC optimize("-falign-functions") #pragma GCC optimize("-fcse-follow-jumps") #pragma GCC optimize("-fsched-interblock") #pragma GCC optimize("-fpartial-inlining") #pragma GCC optimize("no-stack-protector") #pragma GCC optimize("-freorder-functions") #pragma GCC optimize("-findirect-inlining") #pragma GCC optimize("-fhoist-adjacent-loads") #pragma GCC optimize("-frerun-cse-after-loop") #pragma GCC optimize("inline-small-functions") #pragma GCC optimize("-finline-small-functions") #pragma GCC optimize("-ftree-switch-conversion") #pragma GCC optimize("-foptimize-sibling-calls") #pragma GCC optimize("-fexpensive-optimizations") #pragma GCC optimize("inline-functions-called-once") #pragma GCC optimize("-fdelete-null-pointer-checks") */ #define ll long long #define all(x) x.begin(),x.end() #define sz(x) (int) x.size() #define f first #define s second #define ld long double #define yes cout << "YES" << endl #define no cout << "NO" << endl #define pb push_back #define popcount __builtin_popcount #define endl '\n' #define int long long const long double Eps = 1e-12; const int max1 = 2e9*1.4; const int min1 = -1e9 *1.4; const ll mod1 = 1000000007; const ll mod2 = 2000000011; const ll mod3 = 3000000017; const ll mod = 998244353; const int N = 5e5 + 100; const int B = 1e6 + 1; const ll INF = 3e18 + 100; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); ll binpow(ll x,ll y,ll md) { if(y == 0) return 1; if(y == 1) return x; if(y % 2 == 0) { ll now = binpow(x,y/2,md); return (1ll*now*now) % md; } else { ll now = binpow(x,y/2,md); return (1ll*((1ll*now*now) % md)*x) % md; } } /* for(int l = 0;l < logn - 1;l++) { for(int i = 0;i + (2 << l) <= n;i++) { sp[l + 1][i] = merge(sp[l][i],sp[l][i + (1 << l)]); } } int rmq(int l,int r) { int t = log2(r - l); return merge(sp[t][l],sp[t][r - (1 << t)]); } */ int n,m; int check(int x) { multiset <int> s; for(int i = 1;i <= x;i++) s.insert(m); for(int i = 1;i <= n - x;i++) s.insert((m - 1)/2); int ans = 0; while(true) { vector <int> v; for(int i = 1;i <= n/2 + 1;i++) { if(s.empty()) break; int g = *--s.end(); s.erase(s.find(g)); v.pb(g); } if(sz(v) != n/2 + 1) { break; } if(sz(v) > n/2 + 1) break; ans++; for(auto x:v) if(x - 1) s.insert(x - 1); } return ans; } signed main() { ios_base::sync_with_stdio(NULL); cin.tie(0); cout.tie(0); int tt; cin >> tt; while(tt--) { cin >> n >> m; int now = 0; int l = 0; for(int i = 0;i <= n;i++) { if(check(i) + (n - i) > now) { now = check(i) + (n - i); l = i; } } multiset <pair <int,int > > s; char ans[n + 1][m + 1]; for(int i = 1;i <= n;i++) { for(int j = 1;j <= m;j++) { ans[i][j] = '+'; } } for(int i = n - l + 1;i <= n;i++) { s.insert({m,i}); } for(int i = 1;i <= n - l;i++) { s.insert({(m - 1)/2,i}); } int sum = 0; int it = 1; while(!s.empty()&&it <= m) { vector <pair <int,int> > v; for(int i = 1;i <= n/2 + 1;i++) { if(s.empty()) break; pair <int,int> g = *--s.end(); ans[g.s][it] = '-'; s.erase(s.find(g)); v.pb(g); } if(sz(v) != n/2 + 1) { break; } sum++; it++; for(auto x:v) if(x.f - 1) s.insert({x.f - 1,x.s}); } cout << sum + (n - l) << endl; for(int i = 1;i <= n;i++) { for(int j = 1;j <= m;j++) { cout << ans[i][j]; } cout << endl; } } } /* Lxner & WENARO Лед ------------------------------------------------------------------- Вс-все твои слёзы просто превращаю в лёд (В лёд) Я спрячу сердце, его никто не найдёт Не-не-не-не-не вижу смысла кончить этот эпизод Я-я-я вижу выход, но не могу найти вход (—Ход-ход-ход-ход-ход, вход) Все твои слёзы просто превращаю в лёд Я-я-я спрячу сердце, его никто не найдёт (Не найдёт) Не вижу смысла кончить этот эпизод (Лё-ё-ёд) Я вижу выход, но не могу найти вход (И-и) Все твои слёзы просто превращаю в лё-лё-лёд Я спрячу сердце, его никто не найдёт (Я-я) Не вижу смысла кончить этот эпизод Я вижу выход, но не могу найти вход Мно-мно-много говоришь — пустые слова (—Ва-ва-ва) Самый одинокий парень я — навсегда Ка-ка-как бы ни хотел, но ты одна нужна Боль и слёзы, да, бывает, иногда (Лёд, лёд) Все твои слёзы просто превращаю в лё-лё-лёд Я спрячу сердце, его никто не найдёт (А-а-а-а-а) Бывает больно, но я знаю всё пройдёт (Всё пройдёт) Я вижу выход, но не могу найти вход (А-а) Все твои слёзы просто превращаю в лё-лё-лёд Я спрячу сердце, его никто не найдёт (Лё-лё-лё-лё-лёд) Бывает больно, но я знаю всё пройдёт (Всё пройдёт) Я вижу выход, но не могу найти вход (—Ход-ход-ход-ход, вход) И не растопишь, и не сможешь забыть (За-а-а-а—) Где-то без меня нашла новую жизнь Тебя так манит этот холодный мир И-и-и-и-и ты как айсберг, ведь я снова разбит It's so hard, это сложно О-о-она застыла в ожидании солнца-а-а-а Но я не думаю что сможет согреть Её ледяную душу, остаётся лишь смотреть (А, а, а-а-а-а) Все твои слёзы просто превращаю в лёд Я-я-я спрячу сердце, его никто не найдёт (Не найдёт) Не вижу смысла кончить этот эпизод (—З-з-з-од) Я вижу выход, но не могу найти вход (И-и) Все твои слёзы просто превращаю в лё-лё-лёд Я-я спрячу сердце, его никто не найдёт Не вижу смысла кончить этот эпизод Я вижу выход, но не могу найти вход Твои слёзы просто-просто пре— в лёд Я-я-я-я прячу сердце, его-его не найдёт (Не найд—, не най—) Не вижу смысла кончить-кончить эпизод (А-а-а-а, а-а-а-а) Я вижу выход, но не—, но не— найти вход (—Ход-ход-ход-ход-ход, вход) Все твои слёзы просто превращаю в лёд Я-я-я-я спрячу сердце, его никто не найдёт (Не найдёт) Не вижу смысла кончить этот эпизод (—З-з-з-од) Я вижу выход, но не могу-гу най— вход */
#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...