Pagini recente » Cod sursa (job #406362) | Cod sursa (job #2962474) | Cod sursa (job #1299587) | Cod sursa (job #3264271) | Cod sursa (job #763454)
Cod sursa(job #763454)
#include <fstream>
using namespace std;
int main()
{
//Deschiderea fisierelor
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
//Declararea principalelor variabile
unsigned int i=1,n=0,aliati=1,aparitii=0,v[1000001];
//Citirea numarului de alegatori
fin>>n;
//Citirea primului alegator
fin>>v[0];
unsigned int candidat=v[0];
//Citirea restului de alegatori si determinarea candidatului care POATE fi majoritar
for(i=1;i<n;i++)
{
fin>>v[i];
if(v[i]==candidat)
{
aliati++;
}
else
{
aliati--;
}
if(aliati==0)
{
candidat=v[i];
aliati=1;
}
}
//Acum verificam daca el chiar este majoritar
for(i=0;i<n;i++)
{
if(v[i]==candidat)
aparitii++;
}
//Daca exista, afisam candidatul majoritar
if(aparitii>=n/2+1)
fout<<candidat<<' '<<aparitii<<'\n';
else
fout<<"-1\n";
//Incheiere
fin.close();
fout.close();
return 0;
}