1)
#include <iostream>
#include <vector>
using namespace std;
int main(){
srand(time(NULL));
int n;
cin >> n;
vector<int> a(n);
for(auto &i : a)
i = rand() % 1001 - 500;
pair<int,int> k1,k2;
k1 = k2 = {-1e9,-1};
for(int i = 0; i < n; i++){
if(a[i] > k1.first){
k2 = k1;
k1 = {a[i],i+1};
}
else if(a[i] > k2.first)
k2 = {a[i],i+1};
}
cout << k1.second << " " << k2.second;
}
2)
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n;
cin >> n;
vector<int> a(n);
for(auto &i : a)
cin >> i;
int cnt = 1, mx = a[0];
for(int i = 1; i < n; i++){
if(a[i] == mx)
cnt++;
else if(a[i] > mx){
cnt = 1;
mx = a[i];
}
}
cout << cnt;
}
Так как язык не указан, приведу пример на SWI-Prolog.
Код:
read_int(Int) :- read(Int), integer(Int).split_int_by_numbers(0, []) :- !.split_int_by_numbers(N, [Number|Ints]) :- Number is mod(N, 10), RestN is div(N, 10), split_int_by_numbers(RestN, Ints).test_to_div(_, []).test_to_div(N, [Number|Ints]) :- mod(N, Number) =:= 0, test_to_div(N, Ints). test(Int) :- split_int_by_numbers(Int, Numbers), test_to_div(Int, Numbers), write(Int), write(" - Yes!"), nl.test(Int) :- write(Int), write(" - No!"), nl.?- read_int(Int), test(Int).
