| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
有没有人能帮我看一下为什么我的代码在G++下是对而C++下就WA? 我已经碰到好几次这种问题了..很是郁闷!万分感激!!还有我在st[],en[],w[]和bellman()里面的局部数组变量b[]上多开了5个在G++下交又WA了
#include<iostream>
using namespace std;
const int inf=100000000;
int st[200000],en[200000],w[200000],e,v,E;
char s[1000];
int bellman()
{
int b[1000],i,j;
bool f;
for (i=0;i<v;i++)
b[i]=inf;
b[0]=0;
for (i=1;i<v;i++)
{
f=0;
for (j=0;j<e;j++)
if (b[st[j]]+w[j]<b[en[j]])
b[en[j]]=b[st[j]]+w[j],f=1;
if (!f) return 1;
}
return 0;
}
void readdata()
{
int i,j,a,b,l,dis;
gets(s);
e=0;
for (i=0;i<E;i++)
{
gets(s);
l=strlen(s);
if (s[0]=='P')
{
a=0,b=0,dis=0;j=2;
while (s[j]!=' ')
a=a*10+s[j++]-'0';
j++;
while (s[j]!=' ')
b=b*10+s[j++]-'0';
j++;
while (j<l)
dis=dis*10+s[j++]-'0';
st[e]=a,en[e]=b,w[e]=-dis;
e++;
st[e]=b,en[e]=a,w[e]=dis;
e++;
}
else
{
a=0,b=0,j=2;
while (s[j]!=' ')
a=a*10+s[j++]-'0';
j++;
while (j<l)
b=b*10+s[j++]-'0';
st[e]=a,en[e]=b,w[e]=-1;
e++;
}
}
}
int main()
{
while (scanf("%d%d",&v,&E)!=EOF)
{
readdata();
if (bellman())
printf("Reliable\n");
else
printf("Unreliable\n");
}
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator