/*#include <stdio.h>
int n, a, b, d[1010];
int maxi(int a, int b)
{
int max_i = a;
for(int i=a; i<=b; i++){
if(d[max_i]<d[i]){
max_i = i;
}
}
return max_i;
}
int main(void)
{
scanf("%d", &n);
for(int i=1; i<=n; i++){
scanf("%d", &d[i]);
}
scanf("%d %d", &a, &b);
printf("%d\n", maxi(a, b));
}
*/
/*
#include <stdio.h>
int n, k, d[1010];
int lower_bound(int k)
{
int i;
for(i=1; i<=n; i++){
if(k<=d[i]){
return i;
}
}
return n+1;
}
int main(void)
{
scanf("%d", &n);
for(int i=1; i<=n; i++){
scanf("%d", &d[i]);
}
scanf("%d", &k);
printf("%d\n", lower_bound(k));
}
*/
/*
#include <stdio.h>
int n, i;
int sum(int n)
{
int k=0;
for(i=0; n!=0; i++){
k=n%10+k;
n=n/10;
}
if(k<10){
return k;
}else{
sum(k);
}
}
int main(void)
{
scanf("%d", &n);
printf("%d", sum(n));
return 0;
}
*/
/*
#include <stdio.h>
int main(void)
{
int w, h, n, l, d, x, y, i, j, k, arr[101][101]={};
scanf("%d %d %d", &h, &w, &n);
for(j=0; j<n; j++){
scanf("%d %d %d %d", &l, &d, &x, &y);
if(d==0){
for(i=y; i<l+y; i++){
arr[x][i]=1;
}
}else{
for(i=x; i<l+x; i++){
arr[i][y]=1;
}
}
}
for(i=1; i<=h; i++){
for(j=1; j<=w; j++){
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
*/
/*
#include <stdio.h>
int main(void)
{
int arr[10][10], i, j;
for(i=0; i<10; i++){
for(j=0; j<10; j++){
scanf("%d", &arr[i][j]);
}
}
i=1;
j=1;
while(1)
{
if(arr[i][j]==2){
arr[i][j] = 9;
break;
}
if(arr[i][j]==0){
arr[i][j] = 9;
}
if(arr[i][j+1]!=1)
{
j++;
}
else if(arr[i+1][j]!=1)
{
i++;
}
else
{
break;
}
}
for(i=0; i<10; i++){
for(j=0; j<10; j++){
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
*/
/*
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int arr[101][101] = {}, N, x, y, i, j;
scanf("%d %d %d", &N, &x, &y);
for(i=1; i<=N; i++){
for(j=1; j<=N; j++){
arr[i][j] = abs(x-i)+abs(y-j)+1;
}
}
for(i=1; i<=N; i++){
for(j=1; j<=N; j++){
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
3 7
3 4 5 6 7
#include<stdio.h>
int main(void)
{
int arr[101][101]={}, i, j, x1, x2, y1, y2, size=0;
for(int k=0; k<4; k++){
scanf("%d %d %d %d", &x1, &y1, &x2, &y2);
for(i=x1; i<x2; i++){
for(j=y1; j<y2; j++){
arr[i][j] = 1;
}
}
}
for(i=0; i<101; i++){
for(j=0; j<101; j++){
size+=arr[i][j];
}
}
printf("%d", size);
return 0;
}
재귀함수 recursive function
: 함수 내에서 자신을 다시 호출하는 함수
: 자신으로 다시 정의내리는
void f(int n){
for(int i=n; i>=1; i--){
printf("%d ",i);
}
}
f(n) : n부터 1까지 출력
: n출력 -> n-1부터 1까지 출력
: n출력 -> f(n-1) //재귀호출 ( n>=1)
#include <stdio.h>
void f(int n)
{
// if(n==0) return ;
if(n>=1){
printf("%d ",n);
f(n-1);
}
}
int main(){
int n;
scanf("%d",&n);
f(n);
}
*/
/*
#include <stdio.h>
int n;
void f(int k){
if(k==n+1) return;
printf("%d\n", k);
f(k+1);
}
int main()
{
scanf("%d", &n);
f(1);
return 0;
}
f(a,b) : a ~b
a출력 -> a+1~ b 출력
a출력 -> f(a+1,b)
*/
/*
#include <stdio.h>
void f(int a, int b)
{
if(a==b+1) return;
if(a%2==1){
printf("%d ", a);
}
f(a+1,b);
}
int main(void)
{
int a, b;
scanf("%d %d", &a, &b);
f(a,b);
return 0;
}
f(n) : 1부터 n까지 합 리턴
(1부터 .n-1까지 합 +n) 리턴
*/
/*
#include <stdio.h>
int f(int k)
{
if(k==1) return 1;
return f(k-1)+k;
}
int main(void)
{
int n;
scanf("%d", &n);
printf("%d", f(n));
return 0;
}
*/
/*
#include <stdio.h>
int f(int n)
{
if(n==1) return 1;
return f(n-1)*n;
}
int main(void)
{
int n;
scanf("%d", &n);
printf("%d", f(n));
return 0;
}
*/
/*
#include <stdio.h>
void f(int k)
{
printf("%d\n", k);
if(k==1){
return ;
}
if(k%2==0){
f(k/2);
}else{
f(3*k+1);
}
}
int main(void)
{
int n;
scanf("%d", &n);
f(n);
return 0;
}
*/
/*
#include <stdio.h>
void f(int n)
{
if(n==1){
printf("1\n");
return;
}
if(n%2==0){
f(n/2);
}else{
f(3*n+1);
}
printf("%d\n",n);
}
int main()
{
int n;
scanf("%d", &n);
f(n);
return 0;
}
첫 번째 수와 두 번째 수는 모두 1이고, 세 번째 수부터는 이전의 두 수를 더하여 나타낸다.
f(1) 1
f(2) 1
f(3) f(1)+f(2);
...
#include <stdio.h>
int f(int n)
{
if(n<=2) return 1;
return f(n-1)+f(n-2);
}
int main(void)
{
int n;
scanf("%d", &n);
printf("%d", f(n));
return 0;
}
*/