На диске будет занято 36 971 928 КБ памяти.
Объяснение:
число точек в изображении:
1877 * 3330 = 6250410 точек
считаем чистый размер файла одного изображения:
6250410 * 24 = 150009840 бит
переводим в байты:
150009840 / 8 = 18751230 байт
переводим в килобайты:
18751230 / 1024 ≈ 18311,75 КБ
считаем, сколько кластеров займёт такой файл:
18311,75 / 8 ≈ 2288,97 кластеров
округляем (всегда с избытком, вверх, т.к. кластер считается занятым, даже если занята лишь его малая часть), и получаем что файл одного изображения займёт 2289 кластеров
считаем, сколько кластеров займут все 2019 файлов:
2289 * 2019 = 4621491 кластеров
считаем, сколько это в килобайтах:
4621491 * 8 = 36971928 КБ
P.S. Именно поэтому файлы изображений обычно хранят сжатыми (чтобы не получилось, что всего то 2 тысячи картинок заняли десятки гигабайт).
#include <iostream>
#include <vector>
using namespace std;
int main() {int m, n, cx, cy;
cin >> m >> n;
vector<int>a;
a.reserve(m*n);
for (int i = 0;i < m;++i) {
for(int j = 0;j < n;++j) {
int v;
cin >> v;
a.push_back(v);
}
}
int x;
int value = 0;
cin >> x;
for (int k = 0;k < x;++k) {
cin >> cx >> cy;
if((a[cy-1 + (cx-1)*cy]) != -100) {
value += a[cy-1 + (cx-1)*cy];
a[cy-1 + (cx-1)*cy] = -100;
}
}cout << value;
}
Объяснение: