#include <iostream>
#include <fstream>
#include <bitset>
#include <algorithm>
#define NMAX 180
using namespace std;
ifstream f ("adunare.in");
ofstream g ("adunare.out");
// bitset<NMAX> a[NMAX];
short int a[NMAX][NMAX];
int n, m, size, sizem, nrPar, nr, nrBombe, I, k, n1, n2,
dx[4] = {-1, 0, 1, 0},
dy[4] = {0, 1, 0, -1};
struct zona
{
int x,y;
} v[NMAX*NMAX];
struct bombe
{
float x, y, p;
bool active = true;
} b[NMAX];
void afisareT ()
{
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
cout<<a[i][j]<<' ';
cout<<'\n';
}
cout<<'\n';
}
int sum3 (int v[], int n)
{
if (n == 0)
return 0;
if (v[n-1] % 3 == 0)
return sum3(v,n-1) + v[n-1];
else
return sum3(v,n-1);
}
void citire ()
{
int x,y;
f>>n>>m>>k;
for (int i=0; i<k; i++)
{
f>>x>>y;
a[n-x][y-1]++;
}
}
void lee(int x, int y)
{
a[x][y] = -1;
for (int k = 0; k < 4; k++)
if (dx[k] + x >= 0 &&
dx[k] + x < n &&
dy[k] + y >= 0 &&
dy[k] + y < m)
if (a[dx[k] + x][dy[k] + y] == 0)
lee(dx[k] + x, dy[k] + y);
else if (a[dx[k] + x][dy[k] + y] > sizem)
sizem = a[dx[k] + x][dy[k] + y];
}
void lee1(int x, int y)
{
a[x][y] = 0;
for (int k = 0; k < 4; k++)
if (dx[k] + x >= 0 &&
dx[k] + x < n &&
dy[k] + y >= 0 &&
dy[k] + y < m)
if (a[dx[k] + x][dy[k] + y] == -1)
lee1(dx[k] + x, dy[k] + y);
else if (a[dx[k] + x][dy[k] + y] == sizem)
{
size++;
a[dx[k] + x][dy[k] + y] = 0;
}
}
void complete()
{
for(int i=0; i<size; i++)
a[v[i].x][v[i].y]=size;
size = 0;
}
void CMMI()
{
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
if (a[i][j] == 1)
{
afisareT();
nr++;
size = 0;
lee(i, j);
if (size > sizem)
sizem = size;
}
complete();
}
}
}
bool prim (int a)
{
if (a == 2)
return true;
if (a<2 || a%2==0)
return false;
int d = 3;
while (d*d<=a)
{
if (a%d==0)
return false;
d+=2;
}
return true;
}
void P (int x[], int n, int &s)
{
s=0;
if (n > 1)
P(x, n-1, s);
if (prim(x[n-1]))
s += x[n-1];
}
int suma(int v[], int n, int i, int j)
{
if (n<1)
return 0;
if (n > j || n < i)
return suma(v,n-1,i,j) + v[n];
else
return suma(v,n-1,i,j);
}
void afisare ()
{
for (int i=0; i<n; i++)
{
for (int j=0; j<m; j++)
g<<a[i][j]<<' ';
g<<'\n';
}
}
void citireBombe()
{
f>> nrBombe >> I;
for (int i=0; i<nrBombe; i++)
f>>b[i].x>>b[i].y>>b[i].p;
}
bool inRange(bombe a, bombe b)
{
float range, dx, dy, distance;
range = a.p;
dx = a.x - b.x;
dy = a.y - b.y;
distance = dx*dx + dy*dy;
if (range*range >= distance)
return true;
else
return false;
}
void boom(int k)
{
b[k].active = false;
for (int i=0; i<nrBombe; i++)
if (b[i].active)
if (inRange(b[k],b[i]))
boom(i);
}
void count ()
{
int k=0;
for (int i=0; i<nrBombe; i++)
if (b[i].active)
k++;
g<<k;
}
void afis()
{
int a;
cin>>a;
if (a)
afis();
cout<<a<<' ';
}
void afisvec1(int v[], int n)
{
if (n>0)
{
cout<<v[n-1]<<' ';
afisvec1(v,n-1);
}
}
void afisvec(int v[], int n)
{
if (n>0)
{
afisvec(v,n-1);
cout<<v[n-1]<<' ';
}
}
void P (int v[], int n, int& mini, int& maxi, int& sum)
{
mini = 1000000;
maxi = -1000000;
sum = 0;
if (n>1)
P(v,n-1,mini,maxi,sum);
sum+=v[n-1];
if (v[n-1]>maxi)
maxi = v[n-1];
if (v[n-1]<mini)
mini = v[n-1];
}
int cautare(int n, double x[], double v)
{
if (n>1)
if (x[n-1]==v)
return n-1;
else
return cautare(n-1,x,v);
else
return -1;
}
void num (int n, int v[])
{
if (v[n-1] <= v[0])
v[n-1] = 0;
if (n>1)
num(n-1,v);
}
void quickSort(int arr[], int left, int right)
{
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
/* partition */
while (i <= j)
{
while (arr[i] < pivot)
i++;
while (arr[j] > pivot)
j--;
if (i <= j)
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
/* recursion */
if (left < j)
quickSort(arr, left, j);
if (i < right)
quickSort(arr, i, right);
}
void ordonare1 (int v[], int n)
{
quickSort(v,0,n-1);
}
void ordonare (int a[], int n, int st, int dr)
{
quickSort(a,st,dr);
}
int main()
{
int a, b;
f>>a>>b;
g<<a+b;
/*
int n = 6, a[NMAX] = {63,273,9,83,93,123}, mini, maxi, sum;
double x[NMAX] = {9.5,16.3,28.3,49.7,52.4,73}, v = 52.4;
ordonare(a,n,1,3);
for (int i=0; i<n; i++)
cout<<a[i]<<' ';
cout<<mini<<' '<<maxi<<' '<<sum;
num(n,a);
P(v,n,mini,maxi,sum);
afisvec(v,n);
citire();
lee(n-1,0);
lee1(n-1,0);
// afisare();
n1 = sizem;
n2 = size;
g<<n1<<'\n'<<n2;
// cout<<sizem;
afis();
citireBombe();
boom(I-1);
count();
CMMI();
int n = 6, v[NMAX] = {0, 12, 7, 6, 3, 8, 5}, i = 2, j = 4;
cout<<suma(v,n,i,j);
g<<nr<<' '<<sizem<<' '<<nrPar;
*/
return 0;
}