这题不是有spj吗
by suxxsfe @ 2020-07-23 23:40:03
啊这
by xiechengzhan @ 2020-07-23 23:40:17
是要SPJ代码?
by 鏡音リン @ 2020-07-23 23:41:19
@[鏡音リン](/user/90893) 是的吧(感觉这个要求应该不过分?(
by FZzzz @ 2020-07-23 23:41:53
那你圈管理啊 圈我干啥(
by 鏡音リン @ 2020-07-23 23:42:59
@[鏡音リン](/user/90893) 啊啊啊啊(
@[StudyingFather](/user/22030)
by FZzzz @ 2020-07-23 23:44:17
@[FZzzz](/user/174045)
```cpp
#include "testlib.h"
using namespace std;
int n,d;
char num[50010];
int m;
char ans1[50010];
int pi,pj,hi,hj;
char opt;
char opt1,opt2;
int main(int argc ,char* argv[]) {
registerTestlibCmd(argc,argv);
n=inf.readInt();
d=inf.readInt();
for(int i=1;i<=n;i++) {
while(opt!='x'&&opt!='c'&&opt!='a'&&opt!='b') opt=inf.readChar();
num[i]=opt;
opt=0;
}
opt=ans.readChar();
if(opt=='-') {
opt1=ouf.readChar();
if(opt1!='-') quitf(_wa, "On line 1 column 1, read %c, expected -1 . score:QAQ", opt1 );
opt2=ouf.readChar();
if(opt2!='1') quitf(_wa, "On line 1 column 2, read %c, expected 1 . score:QWQ", opt2 );
//ouf.readEof();
quitf(_ok, "congrdulation Accept answer is -1 score:pwp");
}
opt=0;
for(int i=1;i<=n;i++) {
opt=ouf.readChar();
if(opt!='A'&&opt!='B'&&opt!='C') quitf(_wa, "On line 1 column %d, read %c, expected A or B or C . score:qwq", i , opt );
ans1[i]=opt;
if(ans1[i]-'A'+'a'==num[i]&&num[i]!='x') quitf(_wa, "On line 1 column %d, unexpect %c, \n the car cannot run in this map . \n score:qaq", i , opt );
opt=0;
}
m=inf.readInt();
for(int i=1;i<=m;i++) {
opt1=opt2=0;
pi=inf.readInt();
while(opt1!='A'&&opt1!='B'&&opt1!='C') opt1=inf.readChar();
pj=inf.readInt();
while(opt2!='A'&&opt2!='B'&&opt2!='C') opt2=inf.readChar();
if(ans1[pi]==opt1&&ans1[pj]!=opt2) quitf(_wa, "cannot accept the limit %d , unexpect %c in map %d score:pvp", i , ans1[pj] ,pj );
}
//ouf.readEof();
quitf(_ok, " perfect answer score: qvq" );
return 0;
}
```
by StudyingFather @ 2020-07-23 23:51:18
@[StudyingFather](/user/22030) 建议贴到附件里(
by FZzzz @ 2020-07-23 23:54:42
@[FZzzz](/user/174045)
原来的 checker 可读性不太行,刚刚重写了份更友好的 checker:
```cpp
#include "testlib.h"
using namespace std;
int n,d,m;
string S,jans,pans;
int main(int argc,char** argv)
{
registerTestlibCmd(argc,argv);
n=inf.readInt();
d=inf.readInt();
S=inf.readToken();
jans=ans.readToken(),pans=ouf.readToken();
if(jans=="-1")
{
if(pans=="-1")
quitf(_ok,"Correct!");
else
quitf(_wa,"Wrong Answer! There are no valid solutions.");
}
else if(pans=="-1")
quitf(_wa,"Wrong Answer! Valid solutions exist.");
if((int)pans.length()!=n)
quitf(_wa,"Invalid Output! Length did not equal to n.");
m=inf.readInt();
for(int i=0;i<n;i++)
if(S[i]-'a'==pans[i]-'A')
quitf(_wa,"Wrong Answer! You have used a forbidden car in map %d.",i+1);
for(int x=1;x<=m;x++)
{
int i=inf.readInt();
string hi=inf.readToken();
int j=inf.readInt();
string hj=inf.readToken();
i++,j++;
if(pans[i]==hi[0]&&pans[j]!=hj[0])
quitf(_wa,"Wrong Answer! Your output did not meet requirement %d.",x);
}
quitf(_ok,"Correct Answer!");
return 0;
}
```
by StudyingFather @ 2020-07-24 22:37:41
@[FZzzz](/user/174045)
草上面这个出了点锅,我重发一下 /fad
```cpp
#include "testlib.h"
using namespace std;
int n,d,m;
string S,jans,pans;
int main(int argc,char** argv)
{
registerTestlibCmd(argc,argv);
n=inf.readInt();
d=inf.readInt();
S=inf.readToken();
jans=ans.readToken(),pans=ouf.readToken();
if(jans=="-1")
{
if(pans=="-1")
quitf(_ok,"Correct!");
else
quitf(_wa,"Wrong Answer! There are no valid solutions.");
}
else if(pans=="-1")
quitf(_wa,"Wrong Answer! Valid solutions exist.");
if((int)pans.length()!=n)
quitf(_wa,"Invalid Output! Length did not equal to n.");
m=inf.readInt();
for(int i=0;i<n;i++)
if(S[i]-'a'==pans[i]-'A')
quitf(_wa,"Wrong Answer! You have used a forbidden car in map %d.",i+1);
for(int x=1;x<=m;x++)
{
int i=inf.readInt();
string hi=inf.readToken();
int j=inf.readInt();
string hj=inf.readToken();
i--,j--;
if(pans[i]==hi[0]&&pans[j]!=hj[0])
quitf(_wa,"Wrong Answer! Your output did not meet requirement %d.",x);
}
quitf(_ok,"Correct Answer!");
return 0;
}
```
by StudyingFather @ 2020-07-24 22:40:57