제출 #526557

#제출 시각아이디문제언어결과실행 시간메모리
526557asdf2727Red-blue table (IZhO19_stones)C++17
69 / 100
32 ms1248 KiB
#include <iostream> int main() { int nrt, sizx, sizy; int sizx1, sizx2, sizy1, sizy2; int ans; std::cin >> nrt; while (nrt--) { std::cin >> sizx >> sizy; if (sizx <= sizy && sizx < 3) { std::cout << sizy << '\n'; for (int index = 0; index < sizx; index++) { for (int index2 = 0; index2 < sizy; index2++) { std::cout << '-'; } std::cout << '\n'; } } else if (sizy < 3) { std::cout << sizx << '\n'; for (int index = 0; index < sizx; index++) { for (int index2 = 0; index2 < sizy; index2++) { std::cout << '+'; } std::cout << '\n'; } } else { sizx1 = (sizx - 1) >> 1; sizx2 = (sizx >> 1) + 1; sizy1 = (sizy - 1) >> 1; sizy2 = (sizy >> 1) + 1; ans = sizx + sizy + sizx1 + sizy1 - sizx2 - sizy2; if (ans < sizy + 3 && (sizx == 5 || sizx == 6) && sizy > 4) { std::cout << sizy + 3 << '\n'; for (int index = 0; index < sizy2; index++) { std::cout << '+'; } for (int index = sizy2; index < sizy; index++) { std::cout << '-'; } std::cout << '\n'; for (int index = 0; index < sizy1; index++) { std::cout << '-'; } for (int index = sizy1; index < sizy; index++) { std::cout << '+'; } std::cout << '\n'; for (int index = 0; index < sizy1; index++) { std::cout << '+'; } for (int index = sizy1; index < sizy2; index++) { std::cout << '-'; } for (int index = sizy2; index < sizy; index++) { std::cout << '+'; } std::cout << '\n'; for (int index = 3; index < sizx; index++) { for (int index2 = 0; index2 < sizy; index2++) { std::cout << '-'; } std::cout << '\n'; } } else if (ans < sizx + 3 && (sizy == 5 || sizy == 6) && sizx > 4) { std::cout << sizx + 3 << '\n'; for (int index = 0; index < sizx1; index++) { std::cout << "--+"; for (int index2 = 3; index2 < sizy; index2++) { std::cout << '+'; } std::cout << '\n'; } for (int index = sizx1; index < sizx2; index++) { std::cout << "-+-"; for (int index2 = 3; index2 < sizy; index2++) { std::cout << '+'; } std::cout << '\n'; } for (int index = sizx2; index < sizx; index++) { std::cout << "+--"; for (int index2 = 3; index2 < sizy; index2++) { std::cout << '+'; } std::cout << '\n'; } } else if (ans < sizx + sizy1) { std::cout << sizx + sizy1 << '\n'; for (int index = 0; index < sizx; index++) { for (int index2 = 0; index2 < sizy1; index2++) { std::cout << '-'; } for (int index2 = sizy1; index2 < sizy; index2++) { std::cout << '+'; } std::cout << '\n'; } } else if (ans < sizy + sizx1) { std::cout << sizy + sizx1 << '\n'; for (int index = 0; index < sizx1; index++) { for (int index2 = 0; index2 < sizy; index2++) { std::cout << '+'; } std::cout << '\n'; } for (int index = sizx1; index < sizx; index++) { for (int index2 = 0; index2 < sizy; index2++) { std::cout << '-'; } std::cout << '\n'; } } else { std::cout << ans << '\n'; for (int index = 0; index < sizx1; index++) { for (int index2 = 0; index2 < sizy1; index2++) { std::cout << '-'; } for (int index2 = sizy1; index2 < sizy; index2++) { std::cout << '+'; } std::cout << '\n'; } for (int index = sizx1; index < sizx2; index++) { for (int index2 = 0; index2 < sizy; index2++) { std::cout << '-'; } std::cout << '\n'; } for (int index = sizx2; index < sizx; index++) { for (int index2 = 0; index2 < sizy2; index2++) { std::cout << '+'; } for (int index2 = sizy2; index2 < sizy; index2++) { std::cout << '-'; } std::cout << '\n'; } } } } 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...