| Task: | Monikulmio |
| Sender: | EngiFish |
| Submission time: | 2025-10-29 16:25:37 +0200 |
| Language: | C++ (C++17) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 100 |
| test | verdict | time | score | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | 10 | details |
| #2 | ACCEPTED | 0.00 s | 10 | details |
| #3 | ACCEPTED | 0.00 s | 10 | details |
| #4 | ACCEPTED | 0.00 s | 10 | details |
| #5 | ACCEPTED | 0.00 s | 10 | details |
| #6 | ACCEPTED | 0.00 s | 10 | details |
| #7 | ACCEPTED | 0.00 s | 10 | details |
| #8 | ACCEPTED | 0.00 s | 10 | details |
| #9 | ACCEPTED | 0.01 s | 10 | details |
| #10 | ACCEPTED | 0.01 s | 10 | details |
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:238:28: warning: 'low' may be used uninitialized in this function [-Wmaybe-uninitialized]
238 | for (int i = high-2; i >= low; --i) {
| ~~^~~~~~
input/code.cpp:238:14: warning: 'high' may be used uninitialized in this function [-Wmaybe-uninitialized]
238 | for (int i = high-2; i >= low; --i) {
| ^
input/code.cpp:211:38: warning: 'y' may be used uninitialized in this function [-Wmaybe-uninitialized]
211 | }else if(newx < oldx && newy > oldy){
| ~~~~~~~~~~~~^~~~~~~~~~~~~~
input/code.cpp:172:21: warning: 'x' may be used uninitialized in this function [-Wmaybe-uninitialized]
172 | if(newx > oldx){
| ^~
input/code.cpp:34:27: warning: 'oldx' may be used uninitialized in this function [-Wmaybe-uninitialized]
34 | int x, y, newx, newy, oldx, oldy, high, low;
|...Code
#include <iostream>
using namespace std;
#include <vector>
int main() {
int rows, cols, corners;
cin >> rows >> cols >> corners;
string** array = new string*[rows];
for (int i = 0; i < rows; ++i) {
array[i] = new string[cols];
}
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
array[i][j] = ".";
}
}
string** array2 = new string*[rows];
for (int i = 0; i < rows; ++i) {
array2[i] = new string[cols];
}
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
array2[i][j] = ".";
}
}
int x, y, newx, newy, oldx, oldy, high, low;
for (int i = 0; i < corners; i++){
cin >> newy >> newx;
array[newy-1][newx-1] = "*";
if (i == 0){
x = newx;
y = newy;
high = newy;
low = newy;
}else{
if(newy > high){
high = newy;
}
if(newy < low){
low = newy;
}
if(newx == oldx){
if(newy > oldy){
array2[newy-1][newx-1] = "-";
if (array2[oldy-1][oldx-1] == "+"){
array2[oldy-1][oldx-1] = "x";
}else{
array2[oldy-1][oldx-1] = "-";
}
for(int i=1; newy-i>oldy; i++){
array[newy-1-i][newx-1] = "|";
array2[newy-1-i][newx-1] = "-";
}
}else{
array2[newy-1][newx-1] = "+";
if (array2[oldy-1][oldx-1] == "-"){
array2[oldy-1][oldx-1] = "x";
}else{
array2[oldy-1][oldx-1] = "+";
}
for(int i=1; newy+i<oldy; i++){
array[newy-1+i][newx-1] = "|";
array2[newy-1+i][newx-1] = "+";
}
}
}else{
if(newy == oldy){
if(newx > oldx){
if(array2[oldy-1][oldx-1] == "."){
array2[oldy-1][oldx-1] = "-";
}
for(int i=1; newx-i>oldx; i++){
array[newy-1][newx-1-i] = "=";
array2[newy-1][newx-1-i] = "-";
}
}else{
if(array2[oldy-1][oldx-1] == "."){
array2[oldy-1][oldx-1] = "-";
}
for(int i=1; newx+i<oldx; i++){
array[newy-1][newx-1+i] = "=";
array2[newy-1][newx-1+i] = "-";
}
}
}else if(newx < oldx && newy < oldy){
array2[newy-1][newx-1] = "+";
if (array2[oldy-1][oldx-1] == "-"){
array2[oldy-1][oldx-1] = "x";
}else{
array2[oldy-1][oldx-1] = "+";
}
for(int i=1; newx<oldx-i; i++){
array[oldy-1-i][oldx-1-i] = "\\";
array2[oldy-1-i][oldx-1-i] = "+";
}
}else if(newx > oldx && newy < oldy){
array2[newy-1][newx-1] = "+";
if (array2[oldy-1][oldx-1] == "-"){
array2[oldy-1][oldx-1] = "x";
}else{
array2[oldy-1][oldx-1] = "+";
}
for(int i=1; newx>oldx+i; i++){
array[oldy-1-i][oldx-1+i] = "/";
array2[oldy-1-i][oldx-1+i] = "+";
}
}else if(newx < oldx && newy > oldy){
array2[newy-1][newx-1] = "-";
if (array2[oldy-1][oldx-1] == "+"){
array2[oldy-1][oldx-1] = "x";
}else{
array2[oldy-1][oldx-1] = "-";
}
for(int i=1; newx<oldx-i; i++){
array[oldy-1+i][oldx-1-i] = "/";
array2[oldy-1+i][oldx-1-i] = "-";
}
}else{
array2[newy-1][newx-1] = "-";
if (array2[oldy-1][oldx-1] == "+"){
array2[oldy-1][oldx-1] = "x";
}else{
array2[oldy-1][oldx-1] = "-";
}
for(int i=1; newx>oldx+i; i++){
array[oldy-1+i][oldx-1+i] = "\\";
array2[oldy-1+i][oldx-1+i] = "-";
}
}
}
}
oldx = newx;
oldy = newy;
}
newx=x;
newy=y;
if(newx == oldx){
if(newy > oldy){
array2[newy-1][newx-1] = "-";
if (array2[oldy-1][oldx-1] == "+"){
array2[oldy-1][oldx-1] = "x";
}else{
array2[oldy-1][oldx-1] = "-";
}
for(int i=1; newy-i>oldy; i++){
array[newy-1-i][newx-1] = "|";
array2[newy-1-i][newx-1] = "-";
}
}else{
array2[newy-1][newx-1] = "+";
if (array2[oldy-1][oldx-1] == "-"){
array2[oldy-1][oldx-1] = "x";
}else{
array2[oldy-1][oldx-1] = "+";
}
for(int i=1; newy+i<oldy; i++){
array[newy-1+i][newx-1] = "|";
array2[newy-1+i][newx-1] = "+";
}
}
}else{
if(newy == oldy){
if(newx > oldx){
if(array2[oldy-1][oldx-1] == "."){
array2[oldy-1][oldx-1] = "-";
}
for(int i=1; newx-i>oldx; i++){
array[newy-1][newx-1-i] = "=";
array2[newy-1][newx-1-i] = "-";
}
}else{
if(array2[oldy-1][oldx-1] == "."){
array2[oldy-1][oldx-1] = "-";
}
for(int i=1; newx+i<oldx; i++){
array[newy-1][newx-1+i] = "=";
array2[newy-1][newx-1+i] = "-";
}
}
}else if(newx < oldx && newy < oldy){
array2[newy-1][newx-1] = "+";
if (array2[oldy-1][oldx-1] == "-"){
array2[oldy-1][oldx-1] = "x";
}else{
array2[oldy-1][oldx-1] = "+";
}
for(int i=1; newx<oldx-i; i++){
array[oldy-1-i][oldx-1-i] = "\\";
array2[oldy-1-i][oldx-1-i] = "+";
}
}else if(newx > oldx && newy < oldy){
array2[newy-1][newx-1] = "+";
if (array2[oldy-1][oldx-1] == "-"){
array2[oldy-1][oldx-1] = "x";
}else{
array2[oldy-1][oldx-1] = "+";
}
for(int i=1; newx>oldx+i; i++){
array[oldy-1-i][oldx-1+i] = "/";
array2[oldy-1-i][oldx-1+i] = "+";
}
}else if(newx < oldx && newy > oldy){
array2[newy-1][newx-1] = "-";
if (array2[oldy-1][oldx-1] == "+"){
array2[oldy-1][oldx-1] = "x";
}else{
array2[oldy-1][oldx-1] = "-";
}
for(int i=1; newx<oldx-i; i++){
array[oldy-1+i][oldx-1-i] = "/";
array2[oldy-1+i][oldx-1-i] = "-";
}
}else{
array2[newy-1][newx-1] = "-";
if (array2[oldy-1][oldx-1] == "+"){
array2[oldy-1][oldx-1] = "x";
}else{
array2[oldy-1][oldx-1] = "-";
}
for(int i=1; newx>oldx+i; i++){
array[oldy-1+i][oldx-1+i] = "\\";
array2[oldy-1+i][oldx-1+i] = "-";
}
}
}
bool first = true;
bool change = false;
for (int i = high-2; i >= low; --i) {
int a = 0;
for (int j = 0; j < cols; ++j) {
if(array2[i][j] == "+"){
if (change){
a = 0;
}else{
a = 1;
}
first = false;
continue;
}
if(array2[i][j] == "-"){
if (first){
change = true;
}
if (change){
a = 1;
}else{
a = 0;
}
continue;
}
if(array2[i][j] == "x"){
continue;
}
if (a % 2 == 1){
array[i][j] = "#";
}
}
}
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
cout << array[i][j];
}
cout << endl;
}
for (int i = 0; i < rows; ++i) {
delete[] array[i];
}
for (int i = 0; i < rows; ++i) {
delete[] array2[i];
}
delete[] array;
delete[] array2;
return 0;
}Test details
Test 1 (public)
Verdict: ACCEPTED
| input |
|---|
| 8 9 5 5 2 2 5 5 8 7 8 ... |
| correct output |
|---|
| ......... ....*.... .../#\... ../###\.. .*#####*. ... |
| user output |
|---|
| ......... ....*.... .../#\... ../###\.. .*#####*. ... |
Test 2 (public)
Verdict: ACCEPTED
| input |
|---|
| 20 40 4 5 10 5 30 15 30 15 10 |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 3 (public)
Verdict: ACCEPTED
| input |
|---|
| 20 40 29 8 7 13 2 14 2 9 7 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 4 (public)
Verdict: ACCEPTED
| input |
|---|
| 20 40 14 5 12 5 25 8 28 13 28 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 5 (public)
Verdict: ACCEPTED
| input |
|---|
| 20 40 12 3 20 7 16 7 9 11 13 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 6 (public)
Verdict: ACCEPTED
| input |
|---|
| 9 35 33 2 3 2 8 4 8 4 5 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 7 (public)
Verdict: ACCEPTED
| input |
|---|
| 30 100 69 6 10 6 14 7 14 7 18 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 8 (public)
Verdict: ACCEPTED
| input |
|---|
| 40 60 192 11 3 11 5 10 6 11 7 ... |
| correct output |
|---|
| ................................. |
| user output |
|---|
| ................................. |
Test 9 (public)
Verdict: ACCEPTED
| input |
|---|
| 50 100 142 1 1 1 7 1 11 1 14 ... |
| correct output |
|---|
| *=====*===*==*................... |
| user output |
|---|
| *=====*===*==*................... |
Test 10 (public)
Verdict: ACCEPTED
| input |
|---|
| 100 100 1000 10 1 4 7 1 4 1 9 ... |
| correct output |
|---|
| ...*====*........................ |
| user output |
|---|
| ...*====*........................ |
