Informatică, întrebare adresată de oanaroxana3, 8 ani în urmă

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 Rayzen
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
Rayzen: Gata, am modificat.
Canaleto2022: Rayzen
Canaleto2022: Mă ajutați
Canaleto2022: Vă rog frumos
oanaroxana3: Multumesc foarte mult!
Rayzen: Cu drag!
oanaroxana3: Crezi ca ai putea sa ma ajuti cu un raspuns si la aceasta tema: https://brainly.ro/tema/10349578? raspunsul de acolo, nu ma ajuta.
Alte întrebări interesante