201604-1
#include <iostream>
using namespace std;
#define MAX 1000
int a[MAX];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>a[i];
int num=0;
for(int i=1;i<n-1;i++)
{
if((a[i-1]>a[i]&&a[i+1]>a[i])||(a[i-1]<a[i]&&a[i+1]<a[i]))
num++;
}
cout<<num<<endl;
return 0;
}
201604-2 (non-original unresolved!!!)
#include <iostream>
#include <math.h>
#include <algorithm>
using namespace std;
int map[15][10];
int p[4][4];
int l;
int t[4] = {
-1,-1,-1,-1};
int x[4],y[4];
int main()
{
for (int i = 0; i < 15; i++)
for (int j = 0; j < 10; j++)
{
cin >> map[i][j];
}
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
{
cin >> p[i][j];
}
cin >> l;
int c=0;
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
{
if (p[i][j])
x[c] = i, y[c] = j,c++;
if (p[j][i])
t[i] = j;
}
int flag = 0;
int cnt = 0;
while (1)
{
for (int i = 0; i < 4; i++)
{
if (flag)break;
if (t[i] + 1 >= 15)
{
flag = 1; break;
}
if (t[i] == -1)continue;
if (map[t[i] + 1][l - 1 + i])
flag = 1;
}
if (flag)break;
for (int i = 0; i < 4; i++)
{
if (t[i] == -1)continue;
t[i]++;
}
cnt++;
}
for (int i = 0; i < 4; i++)
{
map[x[i] + cnt][l - 1 + y[i]] = 1;
}
for (int i = 0; i < 15; i++)
{
for (int j = 0; j < 10; j++)
{
cout << map[i][j] << " ";
}
cout << endl;
}
return 0;
}
/*
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0 0 0
0 0 0 0 0 0 1 0 0 0
1 1 1 0 0 0 1 1 1 1
0 0 0 0 1 0 0 0 0 0
0 0 0 1
0 0 0 1
0 0 0 1
0 0 0 1
7
*/