fix: fixed validator and added input file and checker.

This commit is contained in:
2026-05-02 12:53:43 -03:00
parent 3cfeb9a032
commit cec770f1f6
7 changed files with 8148 additions and 13 deletions

8053
ra-preguicosa/input/1 Normal file

File diff suppressed because it is too large Load Diff

45
ra-preguicosa/output/1 Normal file
View File

@@ -0,0 +1,45 @@
0
impossible
14
impossible
12
14
17
30
impossible
27
12
54
57
48
55
56
147
222
208
207
239
impossible
242
230
134
226
34
218
99
impossible
97
102
impossible
102
2493
165338
810
impossible
662674
2997
impossible
3179
3016
impossible
3296

View File

@@ -39,10 +39,10 @@
"cpu_count": 1, "cpu_count": 1,
"build_pdf": true, "build_pdf": true,
"pdf_format": "ds", "pdf_format": "ds",
"io_samples": 3 "io_samples": 0
}, },
"solutions": { "solutions": {
"main-ac": "", "main-ac": "ac.cpp",
"alternative-ac": [], "alternative-ac": [],
"wrong-answer": [], "wrong-answer": [],
"time-limit": [], "time-limit": [],

Binary file not shown.

View File

@@ -0,0 +1,13 @@
\documentclass{maratona}
\begin{document}
\begin{ProblemaAutor}{}{A rã saltadora preguiçosa}{1}{1536}{SPOJ - RAPREGUI}
Sr. Rã vive em um pântano em forma de grade retangular, composto de células de mesmo tamanho, algumas delas são secas, outras são somente lugares alagados. Sr. Rã vive em uma célula seca e pode saltar somente de uma célula seca para outra célula seca em seus passeios pelo pântano.
Sr. Rã quer visitar sua namorada, Sra. Sapo, que também vive em uma célula seca no mesmo pântano. Mas Sr. Rã é preguiçoso, e quer gastar a menor quantidade de energia em seu caminho "saltante" até a casa da Sra. Sapo. Sr. Rã sabe quanta energia gasta em qualquer um de seus saltos. Para cada salto simples, Sr. Rã usa a figura a seguir para determinar quais são as possíveis células alvo de sua posição atual (a celula marcada com F), e a quantidade de energia correspondente no salto, em calorias. Qualquer outra célula é inatíngivel da posição atual de Sr. Rã com um salto simples.
Sua tarefa é determinar a quantidade minima de energia que Sr. Rã precisa gastar para ir de sua casa para a casa da Sra. Sapo.
\end{ProblemaAutor}
\end{document}

View File

@@ -1,12 +1,33 @@
#include "testlib.h" #include "testlib.h"
#include <bits/stdc++.h> #include <string>
using namespace std; using namespace std;
int main(int argc, char *argv[]) {
int main(int argc, char* argv[]) { setName("compare files as sequence of lines");
setName("Set the name of your checker here");
registerTestlibCmd(argc, argv); registerTestlibCmd(argc, argv);
return 0;
std::string strAnswer;
int n = 0;
while (!ans.eof()) {
std::string j = ans.readString();
if (j.empty() && ans.eof())
break;
strAnswer = j;
std::string p = ouf.readString();
n++;
if (j != p)
quitf(_wa, "%d%s lines differ - expected: '%s', found: '%s'", n, englishEnding(n).c_str(),
compress(j).c_str(), compress(p).c_str());
}
if (n == 1)
quitf(_ok, "single line: '%s'", compress(strAnswer).c_str());
quitf(_ok, "%d lines", n);
} }

View File

@@ -7,12 +7,13 @@ using namespace std;
int main(int argc, char* argv[]) { int main(int argc, char* argv[]) {
registerValidation(argc, argv); registerValidation(argc, argv);
while (true) { while (true) {
int C = inf.readInt(1, 1000, "C"); int C = inf.readInt(0, 1000, "C");
inf.readSpace(); inf.readSpace();
int R = inf.readInt(1, 1000, "R"); int R = inf.readInt(0, 1000, "R");
inf.readEoln(); inf.readEoln();
if (C == 0 && R == 0) break; if (C == 0 && R == 0) break;
ensure(C != 0 || R != 0);
int Cf, Rf, Ct, Rt; int Cf, Rf, Ct, Rt;
Cf = inf.readInt(1, C, "Cf"); Cf = inf.readInt(1, C, "Cf");
inf.readSpace(); inf.readSpace();
@@ -30,12 +31,14 @@ int main(int argc, char* argv[]) {
int C1, C2, R1, R2; int C1, C2, R1, R2;
C1 = inf.readInt(1, C, "C1"); C1 = inf.readInt(1, C, "C1");
inf.readSpace(); inf.readSpace();
C2 = inf.readInt(1, C, "C2");
inf.readSpace();
R1 = inf.readInt(1, R, "R1"); R1 = inf.readInt(1, R, "R1");
inf.readSpace(); inf.readSpace();
C2 = inf.readInt(1, C, "C2");
inf.readSpace();
R2 = inf.readInt(1, R, "R2"); R2 = inf.readInt(1, R, "R2");
inf.readEoln(); inf.readEoln();
ensure(C1 <= C2);
ensure(R1 <= R2);
} }
} }