Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- template<typename Type>
- void sums(Type **array, int N, int M) {
- int i, k, j;
- vector<vector<Type>> sums;
- for (k = 0; k < M; k++) {
- bool add = false;
- Type sum = 0;
- for (i = 0; i < N; i++) {
- if (array[i][k] < 0) {
- add = true;
- for (j = 0; j < N; j++) {
- sum += array[j][k];
- }
- break;
- }
- }
- if(add)
- {
- cout << k + 1 << ' ' << sum << endl;
- }
- }
- for(i = 0; i < 2; i ++)
- {
- for(j = 0; j < sums.size(); j++)
- {
- cout << sums[j][i];
- if(j != sums.size() - 1) cout << ' ';
- }
- cout << endl;
- }
- }
- template<typename Type>
- void firstN(Type **array, int N, int M) {
- int i, k;
- Type characteristics[M][2], sum;
- for (k = 0; k < M; k++) {
- sum = 0;
- for (i = 0; i < N; i += 2) {
- if (array[i][k] < 0) sum += abs(array[i][k]);
- }
- characteristics[k][0] = k;
- characteristics[k][1] = sum;
- }
- for (i = 1; i < M; i++)
- for (k = 0; k < M - i; k++)
- if (characteristics[k][1] > characteristics[k + 1][1])
- swap(characteristics[k], characteristics[k + 1]);
- for (i = 0; i < M; i++)
- cout << characteristics[i][0] << '-' << characteristics[i][1] << endl;
- auto **result = new Type*[N];
- for (i = 0; i < N; i++)
- {
- result[i] = new Type[M];
- }
- for (i = 0; i < N; i++) {
- for (k = 0; k < M; k++) {
- result[i][k] = array[i][(int)characteristics[k][0]];
- cout << result[i][k];
- if (k != M - 1) cout << ' ';
- }
- cout << endl;
- }
- sums(result, N, M);
- }
- template<typename Type>
- void process(Type **array, int N, int M)
- {
- int i, k;
- for (i = 0; i < N; i++)
- {
- array[i] = new Type[M];
- }
- // float j[3][4] = {
- // {0.1234, 0, -7.602, -8.54},
- // {1, 4.00005, 1.99, -2},
- // {6.02207, 1, -1, 0}
- // };
- for(i = 0; i < N; i++){
- for(k = 0; k < M; k++){
- //array[i][k] = j[i][k];
- cin >> array[i][k];
- }
- }
- firstN(array, N, M);
- }
- int main() {
- int N = 3, M = 4;
- cin >> N;
- cin >> M;
- auto **array = new int* [N];
- auto **arrayDouble = new double* [N];
- auto **arrayFloat = new float* [N];
- process(array, N, M);
- process(arrayDouble, N, M);
- process(arrayFloat, N, M);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement