problema da fase regionale 2006/07

Programmazione, algoritmica, teoria dell'informazione, ...
Rispondi
dovix91
Messaggi: 43
Iscritto il: 24 feb 2007, 21:09
Località: alessandria

problema da fase regionale 2006/07

Messaggio da dovix91 »

Il problema è questo: http://www.lsgalilei.tn.it/Olimpiadi/Ol ... nimbus.pdf

Voi come lo risolvereste?
Io (che di ricorsione non ci mastico ancora molto) l ho risolto col seguente codice, ma l'output è a dir poco insensato... :lol:

Codice: Seleziona tutto

#include <iostream>
#include <stdlib>
#include <fstream>
void sort (int[][2], int);
void nimbus (int[][2], int, int, int, int&);
int magg (int[][2], int, int);

int main()
{
   int n;
   int i;

   ifstream f1 ("nimbus_reg_input.txt");
   f1>>n;

   int a[n][2];

   for (i=0; i<n>>a[i][0];
      f1>>a[i][1];
    }

   f1.close();

   sort (a, n);

   int x=0;
   int cont=0;
   nimbus (a, n, x, 0, cont);

   ofstream f2 ("nimbus_reg_output.txt");

   f2<<cont>=1; j--)
  {
     for (i=0; i<j>a[i+1][0])
        {

           temp=a[i][0];
           a[i][0]=a[i+1][0];
           a[i+1][0]=temp;

           temp=a[i][1];
           a[i][1]=a[i+1][1];
           a[i+1][1]=temp;
        }
     }
  }
}

void nimbus (int a[][2], int n, int x, int c, int& cont)
{
    int i;
    for (i=x; i<n>cont)
         cont=c;

      if (a[i][1]<=a[n][1])
      {

        int f = magg (a, n, i);
        nimbus (a, n, f, c, cont);
      }


    }
}

int magg (int a[][2], int n, int i)
{
  int j;
  for (j=i; j<n; j++)
  {
    if (a[i][1]<=a[j][0])
      break;
  }

  return j;
}
Dove si possono trovare tutti i testi e soluzioni delle fasi regionali e italiane delle oli di info?
(Il sito italiano delle oli non va...)

Grazie
Ciao :wink:

EDIT: ho variato qualcosa nel codice; ora è un po' più sensato, ma comunque sbagliato...
dovix91
Messaggi: 43
Iscritto il: 24 feb 2007, 21:09
Località: alessandria

Messaggio da dovix91 »

Problema risolto.
c'è una svista nella funzione nimbus.

La domanda cmq rimane: dove trovare i problemi delle vecchie edizioni delle olimpiadi? :?
Rispondi