Advertisement
naimul64

Worksapp3_sol

Apr 25th, 2017
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. #include <cstring>
  2. #include <vector>
  3. #include <iostream>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8. int minDiff(int pix[][6][10], int m, int k, vector<int> vec) {
  9.     int sum[6][10];
  10.     memset(sum, 0, sizeof(int) * 6 * 10);
  11.  
  12.     int bestK = 0, bestM = 0;
  13.     int diff = 100000;
  14.  
  15.     for (int h = 0; h < k; h++) {
  16.         for (int i = 0; i < m; i++) {
  17.             for (int j = 0; j < vec.size(); j++) {
  18.                 sum[h][i] = sum[h][i] + pix[vec[j]][h][i];
  19.             }
  20.             if (vec.size() % 2 == 1) {
  21.                 int mid = vec.size() / 2;
  22.                 if (abs(mid - sum[h][i - 1]) < diff) {
  23.                     diff = abs(mid - sum[h][i - 1]);
  24.                     bestK = h;
  25.                     bestM = i - 1;
  26.                 }
  27.             } else {
  28.                 int mid = vec.size() / 2;
  29.                 if (abs(mid - sum[h][i - 1]) < diff) {
  30.                     diff = abs(mid - sum[h][i - 1]);
  31.                     bestK = h;
  32.                     bestM = i - 1;
  33.                 }
  34.  
  35.                 mid = vec.size() / 2 - 1;
  36.                 if (abs(mid - sum[h][i - 1]) < diff) {
  37.                     diff = abs(mid - sum[h][i - 1]);
  38.                     bestK = h;
  39.                     bestM = i - 1;
  40.                 }
  41.             }
  42.         }
  43.     }
  44.  
  45.     return 0;
  46. }
  47.  
  48. int main() {
  49.     int n, m, k;
  50.     cin >> n >> m >> k;
  51.     int pix[n][6][10]; //m = column count, k = row count
  52.     for (int i = 0; i < n; i++) {
  53.         for (int j = 0; j < k; j++) {
  54.             for (int l = 0; l < m; l++) {
  55.                 cin >> pix[i][j][l];
  56.             }
  57.         }
  58.     }
  59.  
  60.     for (int i = 0; i < n; i++) {
  61.         for (int j = 0; j < k; j++) {
  62.             for (int l = 0; l < m; l++) {
  63.                 cout << pix[i][j][l] << ' ';
  64.             }
  65.             cout << endl;
  66.         }
  67.         cout << endl;
  68.     }
  69.  
  70.     vector<int> vec;
  71.     for (int i = 0; i < n; i++) {
  72.         vec.push_back(i);
  73.     }
  74.  
  75.     cout << minDiff(pix, m, k, vec);
  76.  
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement