yummy写完了还是不会做这道题,因此只调试了样例和几个显然错误的解。
该SPJ正确,当且仅当 @花生遇到牛奶 在这个帖子中说到的最少 n+1 步是正确的。
同样地,可能没考虑所有情况,故仅供参考。如果您对评测结果有异议(AC被判WA,WA被判AC,AC被判TLE),请在本帖at我反馈。
希望 @ShineEternal @StudyingFather @mrsrz 可以采纳。
#include "testlib.h"
using namespace std;
int n,st,emp;
char a[400005];
int main(int argc,char** argv)
{
registerTestlibCmd(argc,argv);
n=inf.readInt();
st=ouf.readInt(n+1,n+1);
for(int i=1;i<=n;i++)
{
a[i]='1';
a[i+n]='0';
}
emp=n*2+1;
for(int i=1;i<=n+1;i++)
{
st=ouf.readInt(1,n*2+1);
if(st==emp || st+1==emp || st==emp+1)
quitf(_wa,"In step %d, you're trying to move a space.",i);
swap(a[emp],a[st]);
swap(a[emp+1],a[st+1]);
emp=st;
}
for(int i=1;i<=n;i+=2)
if(a[i]!='1' || a[i+1]!='0')
quitf(_wa,"You didn't solve it in the end.");
quitf(_ok,"You solved it! %%%%%%");
return 0;
}