alligator's blog

By alligator, 13 years ago, In Russian
#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;
#define INF 100000.0
#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;
    }
 -------------------------------------------
    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
  • Vote: I like it
  • -25
  • Vote: I do not like it