#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<fstream>
#include<ctype.h>
#include<vector>
using namespace std;
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<math.h>
#include<fstream>
#include<ctype.h>
#include<vector>
using namespace std;
#define INF 100000.0
#define MAXN 150
#define MAXN 150
struct vertex {
double x;
double y;
}v[MAXN];
double g[MAXN][MAXN]={0};
int n;
double dlin (double x1 , double y1 , double x2 , double y2)
{
return sqrt ( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) ) ;
}
int main ()
{
//ios_base::sync_with_stdio(0);
freopen ("cowtour.in","r",stdin);
freopen ("cowtour.out","w",stdout);
int i,j;
char t;
cin>>n;
for (i=0;i<n;i++)
{
cin>>v[i].x>>v[i].y;
}
double x;
double y;
}v[MAXN];
double g[MAXN][MAXN]={0};
int n;
double dlin (double x1 , double y1 , double x2 , double y2)
{
return sqrt ( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) ) ;
}
int main ()
{
//ios_base::sync_with_stdio(0);
freopen ("cowtour.in","r",stdin);
freopen ("cowtour.out","w",stdout);
int i,j;
char t;
cin>>n;
for (i=0;i<n;i++)
{
cin>>v[i].x>>v[i].y;
}
-------------------------------------------
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
cin>>t;
cout<<t<<" ";
if (t == '0')
{printf ("I ");
g[i][j] = INF;
printf ("%.6llf ",g[i][j]);
}
}
printf ( "\n");
}
for (i=0; i<n; i++)
{
for (j=0; j<n; j++)
{
cin>>t;
cout<<t<<" ";
if (t == '0')
{printf ("I ");
g[i][j] = INF;
printf ("%.6llf ",g[i][j]);
}
}
printf ( "\n");
}
---------------------------------------------
return 0;
}
Это часть решения задачи Cow tour на USACO TRAIN. На инпут даётся N и потом N координат (x,y), а потом даётся матрица смежности NхN (только 0 и 1). Чуть ниже приведён пример инпута . В той части кода , которую я отделил линиями у меня есть какой-то баг. Там идёт чтение матрицы из инпута. В t я беру каждый элемент матрицы поочерёдно и если он равняется нулю, то g[i][j] присваиваю INF, но почему-то у меня на компе присваивание идёт нормально , а на компиляторе юсако он вообще не присваивает! У них g[i][j] остаётся 0.000000 , но у меня он присваивает INF. Для проверки того , что заходит ли прога вообще в if, в котором я проверяю равенство t и 0 я сделал там printf ("I "); , вроде прога туда заходит , но она не присваивает . Кто нибудь скажите в чём проблема? Спасибо).
input
8
10 10
15 10
20 10
15 15
20 15
30 15
25 10
30 10
01000000
10111000
01001000
01001000
01110000
00000010
00000101
00000010
10 10
15 10
20 10
15 15
20 15
30 15
25 10
30 10
01000000
10111000
01001000
01001000
01110000
00000010
00000101
00000010