# I2P(I)2020_Yang_lab4
[back](https://hackmd.io/@24K/S1rn-G4PD)
### [11146 - Find the maximum/minimum values](https://acm.cs.nthu.edu.tw/contest/2125/)
```c=
#include <stdio.h>
#include <stdlib.h>
int n,m,ma=-1e9,mi=1e9,a,max,may,mix,miy;
int main(void){
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
scanf("%d",&a);
if(a>ma) ma = a,max = i,may = j;
if(a<mi) mi = a,mix = i,miy = j;
}
printf("%d %d",abs(max-mix)+abs(may-miy),ma-mi);
}
```
```c=
#include<stdio.h>
#include<stdlib.h>
int main()
{
int R, C, arr[20][20]={}, max = 0, posmax[2]={}, min = 0x7fffffff, posmin[2]={};
scanf("%d%d", &R, &C);
for(int row = 0; row < R; row++) for(int col = 0; col < C; col++)
{
scanf("%d", &arr[row][col]);
if(arr[row][col] > max)
{
max = arr[row][col];
posmax[0] = row;
posmax[1] = col;
}
if(arr[row][col] < min)
{
min = arr[row][col];
posmin[0] = row;
posmin[1] = col;
}
}
printf("%d %d", abs(posmax[0]-posmin[0]) + abs(posmax[1]-posmin[1]), max-min);
}
```
### [12901 - Prepare Exam](https://acm.cs.nthu.edu.tw/contest/2125/)
```c=
#include <stdio.h>
#define MX 100005
int main(void){
int n,x[MX],y[MX],c[105][105]={1},ans = 1,mo = 10007;
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&x[i]);
for(int i=0;i<n;i++) scanf("%d",&y[i]);
for(int i=1;i<101;i++){
c[i][0] = 1;
for(int j=1;j<101;j++)
c[i][j] = (c[i-1][j]+c[i-1][j-1])%mo;
}
for(int i=0;i<n;i++) ans = ans*c[x[i]][y[i]]%mo;
printf("%d\n",ans);
}
```
```c=
#include<stdio.h>
#define MOD 10007
int combi[500][500]={};
int gen(int n, int k)
{
int ans;
if(combi[n][k]) return combi[n][k];
if(k == 0 || n == k) ans = 1;
else ans = gen(n-1, k) + gen(n-1, k-1);
ans %= MOD;
combi[n][k] = ans;
return ans;
}
int main()
{
int N, x[100005]={}, y[100005]={};
scanf("%d", &N);
for(int i = 0; i < N; i++) scanf("%d",&x[i]);
for(int i = 0; i < N; i++) scanf("%d",&y[i]);
int ans = 1;
for(int i = 0; i < N; i++)
{
ans = (ans * gen(x[i], y[i])) % MOD;
}
printf("%d\n", ans);
return 0;
}
```