Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <algorithm>
- using namespace std;
- int main()
- {
- int now = 0, maximum = 0, mod0 = 0, mod2 = 0, mod1 = 0;
- ifstream input("C:\\Users\\Максим\\Downloads\\27-A_2.txt");
- input >> now;
- while (input >> now) {
- if (now % 3 == 0 && now > maximum) {
- maximum = now;
- }
- else if (now > mod0) {
- mod0 = now;
- }
- if (now % 3 == 2 && now > mod2) {
- mod2 = now;
- }
- else if (now % 3 == 1 && now > mod1) {
- mod1 = now;
- }
- }
- if ((maximum == 0 || mod0 == 0) && (mod2 == 0 || mod1 == 0)) {
- cout << "1";
- }
- else if (maximum == 0 || mod0 == 0) {
- cout << mod1 + mod2;
- }
- else if (mod2 == 0 || mod1 == 0) {
- cout << mod0 + maximum;
- }
- else {
- cout << max(mod1 + mod2, mod0 + maximum);
- }
- }
- /*По каналу связи передавались положительные целые числа, не превышающие 1000 — результаты измерений, полученных в ходе эксперимента (количество измерений N известно заранее, гарантируется, что N > 2). После окончания эксперимента передаётся контрольное значение — наибольшее число R, удовлетворяющее следующим условиям.
- 1. R — сумма двух различных переданных элементов последовательности («различные» означает, что нельзя просто удваивать переданные числа, суммы различных, но равных по величине элементов допускаются).
- 2. R кратно 3.
- 3. Если в последовательности нет двух чисел, сумма которых кратна 3, контрольное значение считается равным 1.
- В результате помех при передаче как сами числа, так и контрольное значение могут быть искажены.*/
Advertisement
Add Comment
Please, Sign In to add comment