Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //АЛАРМ - ЗАДАЧА РЕАЛЬНО СЛОЖНАЯ В СМЫСОЛЕ
- //На вход программы поступает последовательность из N натуральных
- //чисел. Рассматриваются все пары различных элементов последовательности (элементы пары не
- //обязательно должны стоять в последовательности рядом, порядок в паре неважен). Необходимо
- //определить количество пар, для которых произведение элементов заканчивается на 3, а номера
- //чисел в последовательности отличаются не менее, чем на 6.
- // Нам удовлетворяют произведения 3,33,63,93,123,153
- // Этого можно добиться если умножить 3 на 1
- // или 9 на 7
- // Или же это будут последние цифры в числах (33 * 131 = 4323)
- // Смысол перебора посмотриш в похожих задачах ( мне лень писать )
- #include <iostream>
- using namespace std;
- int main(){
- const int number = 3, diff = 6;
- int lastnum1=0, lastnum3=0, lastnum7=0, lastnum9=0;
- int a[diff], N, count=0, temp;
- cin >> N;
- for(int i=0; i<diff; ++i){
- cin >> a[i];
- }
- for(int i=diff; i<N; ++i){
- cin >> temp;
- if(a[0]%10 == 1) lastnum1++;
- if(a[0]%10 == 3) lastnum3++;
- if(a[0]%10 == 7) lastnum7++;
- if(a[0]%10 == 9) lastnum9++;
- if(temp%10 == 1) count+=lastnum3;
- if(temp%10 == 3) count+=lastnum1;
- if(temp%10 == 7) count+=lastnum9;
- if(temp%10 == 9) count+=lastnum7;
- for(int j=0; j<diff-1; ++j) a[j] = a[j+1];
- a[diff-1]=temp;
- }
- cout << count;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement