Pagini recente » Cod sursa (job #433163) | Cod sursa (job #413289) | tema | Cod sursa (job #440551) | Cod sursa (job #2924120)
#include <bits//stdc++.h>
using namespace std;
int a[10001];
int f[30001];
void citire(int& n, int a[]){
cin >> n;
for(int i = 1; i <= n; ++i) cin >> a[i];
}
void insula(int n, int a[], int& st, int& dr){
int l = 1, lmax = 0;
st = 0, dr = 0;
for(int i = 1; i <= n; ++i){
if(a[i] != 0) {
l++;
if(l > lmax) lmax = l, st = i - l + 2, dr = i;
}else l = 1;
}
if(st != 0 && dr != 0) cout << st << " " << dr << '\n';
else cout << "Nu exista insule";
}
void munte(int n, int a[], int st, int dr){
int maxi = 0, cp;
bool p = true;
if(st == 0 && dr == 0) cout << "Nu este munte";
else {
for(int i = st; i <= dr; ++i) if(a[i] > maxi) maxi = a[i], cp = i;
for(int i = st; i <= dr; ++i) {
if(i < cp - 1) {
if(a[i] >= a[i+1]) p = false;
}else{
if(a[i] == maxi && a[i+1] == 0) p = false;
else if(a[i] > a[i+1]) p = true;
else p = false;
}
}
if(p) cout << "Este munte" << '\n';
else cout << "Nu este munte" << '\n';
}
}
bool distincte(int n, int a[], int& maxi1, int& mini1){
maxi1 = 0, mini1 = 300001;
for(int i = 1; i <= n; ++i) {
if(a[i] < mini1 && a[i] != 0) mini1 = a[i];
if(a[i] > maxi1) maxi1 = a[i];
f[a[i]]++;
}
bool p = true;
for(int i = mini1; i <= maxi1; ++i) {
if(f[i] != 1 || f[i] != 0) {
p = false;
break;
}
}
if(p) {
cout << "Altitudinile sunt distincte";
return true;
}else{
cout << "Altitudinile nu sunt distincte" << '\n';
return false;
}
}
void frecventa(int n, int a[], int maxi1, int mini1){
int maxi2 = 0, cp1;
for(int i = mini1; i <= maxi1; ++i) {
if(f[i] > maxi2) maxi2 = f[i], cp1 = i;
}
cout << cp1 << " " << maxi2;
}
int main()
{
int n, st, dr, maxi1, mini1;
citire(n, a);
insula(n, a, st, dr);
munte(n, a, st, dr);
if(!distincte(n, a, maxi1, mini1)) frecventa(n, a, maxi1, mini1);
}