Перевести код с Паскаля на СИ - C (СИ) (156884)
Формулировка задачи:
Попробовал перевести но выдает не те результаты. Не подскажите где ошибка?
Program P1; Var Map: Array[1..100,1..100] of Integer; S,G,F: Array[1..100] of Integer; A,I,B,J,N,M,K,L,P,R: Integer; Begin Readln(N,M); For A:=1 to N do For B:=1 to N do Map[A,B]:=16000; For I:=1 to M do begin Read(L); For J:=1 to L do Read(S[J]); For A:=1 to L do For B:=1 to L do Map[S[A],S[B]]:=1; End; For A:=1 to N do For B:=1 to N do For I:=1 to N do If Map[A,B]>Map[A,I]+Map[I,B] then Map[A,B]:=Map[A,I]+Map[I,B]; Read(K); A:=0; For I:=1 to K do begin Readln(G[I],S[I],F[I]); A:=A+G[I]; End; P:=0; R:=P; For I:=1 to N do begin P:=0; For J:=1 to K do begin If I=S[J] then begin P:=P+G[J]; continue; End; If Map[I,S[J]]=16000 then begin P:=0; Break; End; If (Map[I,S[J]]*4>G[J]) and (F[J]=0) then begin P:=0; Break; End; If F[J]=1 then begin P:=P+G[J]; Continue; End; P:=P+G[J]-Map[I,S[J]]*4; End; If P>R then begin R:=P; L:=I; End; End; If R<>0 then Writeln(L,' ',A-R) else Writeln(0); End.
#include <stdio.h> void main() { int map[100][100],s[100],g[100],f[100],a,b,i,j,n,m,k,l,p,r; scanf("%d%d",&n,&m); for(a=0;a<n;a++) for(b=0;b<n;b++) map[a][b]=16000; for(i=0;i<m;i++) { scanf("%d",&l); for(j=0;j<l;j++) scanf("%d",&s[j]); for(a=0;a<l;a++) for(b=0;b<l;b++) map[s[a]][s[b]]=1; } for(a=0;a<n;a++) for(b=0;b<n;b++) for(i=0;i<n;i++) if(map[a][b]>map[a][i]+map[i][b]) map[a][b]=map[a][i]+map[i][b]; scanf("%d",&k); a=0; for(i=0;i<k;i++) { scanf("%d%d%d",&g[i],&s[i],&f[i]); a+=g[i]; } p=0; r=p; for(i=0;i<n;i++) { p=0; for(j=0;j<k;j++) { if(i==s[j]) { p+=g[j]; continue;} if(map[i][s[j]]=16000) {p=0; break;} if(map[i][s[j]]*4>g[j] && f[j]==0) { p=0; break;} if(f[j]=1) { p+=g[j]; continue;} p+=g[j]-map[i][s[j]]*4; } if(p>r) { r=p; l=i;} } if(r!=0) printf("%d %d",l,a-r); else putchar('0'); system("PAUSE"); }
Решение задачи: «Перевести код с Паскаля на СИ»
textual
Листинг программы
==
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д