1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include "dzialka.h"
#include "message.h"
#include <iostream>

using namespace std;

int main(){
    const int NumRows = GetFieldHeight();
    const int NumCols = GetFieldWidth();
    long long wyn = 0;

    for(int i = MyNodeId(); i < NumCols; i += NumberOfNodes()){
        for(int j = 0; j < NumRows; j++){
	    bool odp;
            for(int k = i; k < NumCols; k++){
                for(int l = j; l < NumRows; l++){
                    odp = true;
                    for(int x = i; x <= k; x++){
                        for(int y = j; y <= l; y++){
                            if(!IsUsableCell(x, y)){
                                    odp = false;
                                    break;
                            }
                        }
                        if(!odp) break;
                    }
                    if(odp) wyn++;
                }
            }
        }
    }
    if(MyNodeId() > 0){
        PutLL(0, wyn);
        Send(0);
    }
    else{
        for (int instancja = 1; instancja < NumberOfNodes(); ++instancja) {
          Receive(instancja);
          wyn += GetLL(instancja);
        }
        cout << wyn << endl;
    }
}