제출 #1134135

#제출 시각아이디문제언어결과실행 시간메모리
1134135hamzabcRed-blue table (IZhO19_stones)C++20
100 / 100
44 ms1608 KiB
#include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() #define mod 1000000007 #define sp << " " << #define endl << '\n' /* row -> + col -> - */ long long int row, col; void solve(){ cin >> row >> col; bool rotated = row < col; if (rotated){ swap(row, col); } cout << row + (row * ((col - 1) / 2)) / (row - (row - 1) / 2) endl; vector<vector<bool>> table(row, vector<bool>(col, false)); set<pair<long long int, long long int>> cl; for (int i = (row * ((col - 1) / 2)) / (row - (row - 1) / 2); i > 0; i--){ cl.insert({ 0, i - 1 }); } vector<pair<long long int, long long int>> del; for (int i = 0; i < row; i++){ for (int o = (col - 1) / 2; o > 0; o--){ table[i][cl.begin()->second] = true; del.push_back({ cl.begin()->first + 1, cl.begin()->second }); cl.erase(cl.begin()); } for (auto k : del){ cl.insert(k); } del.clear(); } if (rotated) swap(col, row); for (int i = 0; i < row; i++){ for (int o = 0; o < col; o++){ if (rotated){ if (table[o][i]){ cout << "+"; }else{ cout << "-"; } }else{ if (table[i][o]){ cout << "-"; }else{ cout << "+"; } } } cout endl; } cout endl; } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); long long int Q; cin >> Q; while (Q--){ solve(); } return 0; }
#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...