Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

关于Pascal的问题

Posted by WZY001 at 2017-11-08 16:40:28 on Problem 2311
这里Pascal判输入结束是用eof吗?
为什么差不多的程序,一个Pascal,一个由P翻译到C++的程序,P的WA了,但是C++却AC了?
难道是因为eof的缘故?
求解答。

附代码:
Pascal:

var
    sgv:array[0..200,0..200]of longint;
    w,h:longint;

function sg(n,m:longint):longint;
 var i,ans:longint;
     bo:array[0..205]of boolean;
 begin
       if (sgv[n,m]>=0) then exit(sgv[n,m]);

       fillchar(bo,sizeof(bo),0);
       i:=2;
       while (i<=n-i) do
       begin
             bo[sg(i,m) xor sg(n-i,m)]:=true;
             inc(i);
       end;
       i:=2;
       while (i<=m-i) do
       begin
             bo[sg(n,i) xor sg(n,m-i)]:=true;
             inc(i);
       end;

       ans:=0;
       while bo[ans] do inc(ans);
       sgv[n,m]:=ans;
       sgv[m,n]:=ans; 
       exit(sgv[n,m]);
 end;

begin
      fillchar(sgv,sizeof(sgv),255);

      while not eof do
      begin
            read(w,h);
            if (sg(w,h)<>0) then writeln('WIN')
             else writeln('LOSE');
      end;
end.

================================================================

C++:

#include <cstdio>
#include <cstring>

using namespace std;

int sgv[205][205];

int sg(int n, int m)
{
	if (sgv[n][m] >= 0) return sgv[n][m];
	
	bool bo[205];
	memset(bo, 0, sizeof(bo));
	
	int i;
	for (i=2; i<=n-i; i++)
	  bo[sg(i,m) ^ sg (n-i,m)] = 1;
	for (i=2; i<=m-i; i++)
	  bo[sg(n,i) ^ sg (n,m-i)] = 1;
	  
	for (i=0; bo[i]; i++);
	
	return sgv[n][m] = sgv[m][n] = i;
}

int main()
{
	int w,h;
	
	memset(sgv, -1, sizeof(sgv));
	
	while (scanf("%d%d", &w, &h) != EOF)
	 if (sg(w,h)) printf("WIN\n");
	  else printf("LOSE\n");
	
	return 0;
}

(别问我为什么会C++还写Pascal,本蒟蒻是对于C++不太熟悉的NOIP选手。。。)

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator