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 nu cu stringuri va rog !
Răspunsuri la întrebare
Răspuns de
0
Răspuns:
#include<fstream>
#include<cstring>
using namespace std;
ifstream f ("date.in");
ofstream g ("date.out");
char s[41],*p,aux[5];
struct muncitor
{
char x[5],y[5];
}m[101],maxi;
int i,n;
int main()
{
f>>n;
f.get();
for(i=1;i<=n;i++)
{
f.getline(s,101);
p=strtok(s," ");
p=strtok(NULL," ");
strcpy(m[i].x,p);
p=strtok(NULL," ");
p=strtok(NULL," ");
p=strtok(NULL," ");
strcpy(m[i].y,p);
p=strtok(NULL," ");
}
for(i=1;i<n;i++)
if(strcmp(maxi.y,m[i].y)<0)
{
strcpy(maxi.x,m[i].x);
strcpy(maxi.y,m[i].y);
}
g<<maxi.x;
f.close();
g.close();
return 0;
}
Explicație:
Alte întrebări interesante
Matematică,
8 ani în urmă
Istorie,
8 ani în urmă
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Biologie,
8 ani în urmă