Problema PBInfo #1875 platou1
Cerința
Se consideră un șir de cifre. Să se determine lungimea maximală a unei secvențe din șir formată din cifre egale.
Date de intrare
Fișierul de intrare platou1.in conține pe prima linie cifrele reprezentând termenii șirului, separate prin câte un spațiu.
Date de ieșire
Fișierul de ieșire platou1.out va conține pe prima linie două numere naturale k x, separate printr-un singur spațiu, k reprezentând lungimea secvenței determinate, iar x reprezentând termenul șirului din care este formată secvența.
Restricții și precizări
fișierul de intrare conține cel mult 1.000 de cifre, separate prin câte un spațiu, reprezentând termenii șirului dat;
dacă șirul conține mai multe secvențe cu lungimea maximală, se va afișa cel mai mic termen ce formează o astfel de secvență.
Exemplu
platou1.in
3 8 8 8 8 9 9 9 2 5 5 5 5 7 6 6 6 6 8 8
platou1.out
4 5
Explicație
În fișierul de intrare sunt 3 secvențe cu lungimea maximă k=4, termenul cel mai mic fiind x=5.
***I-am dat de cap! Rezolvarea de 100p este:
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("platou1.in");
ofstream fout("platou1.out");
int main()
{
int xmin=10, k=0,lg=1,x,y;
fin>>x; //container pentru numerele de comparat
while(fin>>y)
if(x==y)// in cazul in care cei doi termeni sunt egali
lg++; //contorul inregistreaza frecventa numarului
else { //daca cei doi termeni nu sunt egali
if(k<lg)
{
k=lg; //inregistrarea valorii celei mai mari a frecventei termenului xmin=x; //inregistrarea valorii termenului din secventa
}
else
if(k==lg && xmin>x)
xmin=x;
lg=1; //resetarea contorului
x=y; //inregistrarea noului termen de comparat
}
fout<<k<<" "<<xmin<<endl;
fin.close();
fout.close();
return 0;
}
pebly:
problema este deja rezolvata.. si nu are 100 de puncte
#include <fstream>
using namespace std;
ifstream fin("platou1.in");
ofstream fout("platou1.out");
int main()
{
int xmin=10, k=0,lg=1,x,y;
fin>>x;
while(fin>>y)
if(x==y)
lg++;
else
{
if(k<lg)
{
k=lg;
xmin=x;
}
else
if(k==lg && xmin>x)
xmin=x;
lg=1;
x=y;
}
fout<<k<<" "<<xmin<<endl;
fin.close();
fout.close();
return 0;
}
Răspunsuri la întrebare
Răspuns de
9
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("platou1.in");
ofstream fout("platou1.out");
int main()
{
int xmin=10, k=0,lg=1,x,y;
fin>>x;
while(fin>>y)
if(x==y)
lg++;
else
{
if(k<lg)
{
k=lg;
xmin=x;
}
else
if(k==lg && xmin>x)
xmin=x;
lg=1;
x=y;
}
fout<<k<<" "<<xmin<<endl;
fin.close();
fout.close();
return 0;
}
#include <fstream>
using namespace std;
ifstream fin("platou1.in");
ofstream fout("platou1.out");
int main()
{
int xmin=10, k=0,lg=1,x,y;
fin>>x;
while(fin>>y)
if(x==y)
lg++;
else
{
if(k<lg)
{
k=lg;
xmin=x;
}
else
if(k==lg && xmin>x)
xmin=x;
lg=1;
x=y;
}
fout<<k<<" "<<xmin<<endl;
fin.close();
fout.close();
return 0;
}
Alte întrebări interesante
Germana,
8 ani în urmă
Matematică,
8 ani în urmă
Fizică,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Biologie,
9 ani în urmă