campo base, a intervalli regolari, solo il dislivello percorso rispetto all'ultima trasmissione. Se invia un
numero positivo P, allora è salito di P metri rispetto alla precedente trasmissione; se invia un numero
negativo P, allora è sceso di P metri rispetto alla precedente trasmissione; se infine invia P=0, non ha
cambiato altitudine. Messner parte dal campo base a 5000 metri.
I suoi collaboratori al campo base ricevono tali rilevamenti: aiutali a identificare l'altitudine che risulta
più frequentemente rilevata in questo modo.
Dati di input
Il file input.txt è composto da N+1 righe. La prima riga contiene l'intero positivo N, il numero dei
rilevamenti trasmessi da Messner. Ciascuna delle successive N righe contiene un intero che rappresenta
il dislivello percorso rispetto alla precedente trasmissione.
Dati di output
Il file output.txt è composto da una sola riga contenente l'altitudine che risulta più frequentemente
rilevata in questo modo dal campo base.
Assunzioni
2 ≤ N ≤ 1000.
100 ≤ P ≤ 100.
Esempi di input/output
File input.txt File output.txt
8 5002
3
-1
6
-7
1
4
0
-4
Registriamo i risultati su un vettore, poi cercheremo il massimo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #include<cstdlib> #include<iostream> #include<fstream> #define base 5000 //metri #define N 10000 #define no -1 using namespace std; ifstream in; ofstream out; int n,t,h=base,a[N][2],l=0,maxn=0,maxi; int cerca (int k){ for (int i=0;i<l;i++) if (a[i][0]==k) return i; return no;} int main(){ in.open("input.txt"); out.open("output.txt"); in>>n; for (int i=0;i<n;i++){ in>>t; h+=t; t=cerca(h); if (t==no){ a[l][0]=h; a[l++][1]=1; }else a[t][1]++; } for (int i=0;i<l;i++) if (a[i][1]>maxn){ maxn =a[i][1]; maxi=a[i][0];} out<<maxi; return 0;} |
Nessun commento:
Posta un commento
Si prega di non commentare in modo volgare e/o offensivo.