Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2015
    Messaggi
    18

    Olimpiadi di Informatica, "Giro sulla scopa Nimbus3000", Linguaggio C/C++

    Ciao a tutti, un mio amico ha scritto un programma in C/C++ in grado di soddisfare la richiesta del seguente testo. Sapreste spiegarmi le istruzioni che utilizzato nel "main"? Il codice si trova sotto il problema.
    Grazie mille in anticipo.

    Descrizione del problema
    Al celebre maghetto Harry Potter è stata regalata una scopa volante modello Nimbus3000 e tutti i suoi compagni del Grifondoro gli chiedono di poterla provare. Il buon Harry ha promesso che nei giorni a venire soddisferà le richieste di tutti, ma ogni ragazzo è impaziente e vuole provare la scopa il giorno stesso. Ognuno propone ad Harry un intervallo di tempo della giornata durante il quale, essendo libero da lezioni di magia, può fare un giro sulla scopa, e per convincerlo gli offre una fantastica caramella Tuttigusti+1. Tenendo presente che una sola persona alla volta può salire sulla Nimbus3000 in ogni istante di tempo, Harry decide di soddisfare, tra tutte le richieste dei ragazzi, quelle che gli procureranno la massima quantità di caramelle (che poi spartirà coi suoi amici Ron e Hermione). Aiutalo a trovare la migliore soluzione possibile.

    Dati di input

    Il file input.txt contiene nella prima riga un intero positivo N, che indica il numero di richieste, che sono numerate da 1 a N. Ognuna delle successive N righe contiene una coppia di interi. Ciascuna di tali righe contiene una coppia di interi positivi A e B, separati da uno spazio, a rappresentare la richiesta di poter utilizzare la scopa dall'istante iniziale A fino all'istante finale B, in cambio di una caramella (dove A < B). A tal fine, il tempo è diviso in istanti discreti numerati a partire da 1 in poi.

    Dati di output

    Il file output.txt è composto da una riga contenente un solo intero, che rappresenta il massimo numero di caramelle che Harry può ottenere.

    Assunzioni

    • 1 < N < 1000
    • Gli interi nelle N coppie sono distinti l'uno dall'altro (non esistono due interi uguali, anche in coppie diverse)


    Esempi di input/output

    File input.txt File output.txt
    5
    1 5
    3 7
    9 11
    10 12
    6 13
    2

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int minimo(int *array, int len) 
    {
        int i, min=0;
        for (i=0; i<len; i++) 
            {
                if (array[i]<array[i+1]) 
                    min=array[i];
            }
    
    
        return min;
    }
    
    
    int main(int argc, char** argv) 
    {
        int *array;
        FILE *input=fopen("input.txt", "r");
        FILE *output=fopen("output.txt", "w");
        int i, m;
        int tmp1, tmp2;
        fscanf(input, "%d", &m);
        array=(int*)malloc(m*sizeof(int*));
        for (i=0; i<=m; i++) 
        {
            fscanf(input, "%d %d", &tmp1, &tmp2);
            array[i]=tmp2-tmp1;
        }
        fprintf(output, "%d", minimo(array, m));
        fclose(input);
        fclose(output);
        return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,468
    Tutte le istruzioni utilizzate nel main? Che vuoi dire? Cosa non capisci in particolare ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.