Код:
#include <fstream>#include <vector>#include <numeric>int main() { std::ifstream cin("input.txt"); std::ofstream cout("output.txt"); int N, K; cin >> N >> K; std::vector<int> buffer(N); for (int i = 0; i < K; ++i) { for (int j = 0; j < N; ++j) { cin >> buffer[j]; } // Зануляем найденные min и max *(std::min_element(buffer.begin(), buffer.end())) = 0; *(std::max_element(buffer.begin(), buffer.end())) = 0; // Суммируем cout << std::accumulate(buffer.begin(), buffer.end(), 0) << "\n"; } return 0;}Программа - вариант реализации алгоритма для обработки данных.
Программу тоже можно рассматривать как данные и производить с ней манипуляции. Например, если рассматривать программу как текст то её можно модифицировать в другой программе. А программу, уже загруженную в оперативную память можно рассматривать как последовательность байт, которые можно модифицировать.
P.S. Компиляторы и парсеры делают не сильно сложную работу. Они рассматривают поток текста как некие синтаксические сущности и на их основе создают понятные для компьютера вычислимые сущности. Тот код, который ты пишешь - просто текст. А вся магия в метаописании сущностей.