Date de intrare
Pe prima linie se va găsi un singur număr natural n, iar pe următoarele n linii se vor găsi n propoziții de tipul Muncitorul x a muncit y ore, unde x și y sunt numere naturale.
Date de ieșire
Se va afișa un singur număr natural, reprezentând numărul de ordine a muncitorului care a depus cele mai multe ore de muncă. În cazul în care mai mulți muncitori au depus numărul maxim de ore, se va afișa cel cu indice de ordine cel mai mic.
Restricții și precizări
În cazul în care unul dintre angajați apare de mai multe ori printre datele de intrare, orele de muncă se vor aduna.
1 ≤ n, x, y ≤ 10 000
Exemplu
Date de intrare
5
Muncitorul 1 a muncit 10 ore
Muncitorul 23 a muncit 5 ore
Muncitorul 3 a muncit 3 ore
Muncitorul 23 a muncit 11 ore
Muncitorul 1 a muncit 2 ore
Date de ieșire; 23
Ma puteti ajuta cu o rezolvare in c++ , dar fara fisiere, stringuri sau functia strtok, trebuie citit de la tastatura, va rog !
Răspunsuri la întrebare
Răspuns de
1
#include <iostream>
using namespace std;
int main() {
// Citim numarul de muncitori
int n;
cin >> n;
// Initializam un vector pentru a stoca numarul total de ore lucrate de fiecare muncitor
int hours[10001] = {0};
// Citim intrarea si actualizam matricea
for (int i = 0; i < n; i++) {
char s[10];
int worker, h;
cin >> s >> worker >> s >> s >> h >> s;
hours[worker] += h;
}
// Gasim muncitorul care a lucrat cele mai multe ore
int max_worker = -1, max_hours = -1;
for (int i = 1; i <= 10000; i++) {
if (hours[i] > max_hours) {
max_worker = i;
max_hours = hours[i];
}
}
// Afisam rezultatul
cout << max_worker << endl;
return 0;
}
oanaroxana3:
Buna! Poti sa modifici codul te rog , nu trebuie rezolvata cu stringuri
Alte întrebări interesante
Matematică,
8 ani în urmă
Franceza,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Geografie,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă