//第一题===============================
#include <bits/stdc++.h>
using namespace std;
int n,l,r,cnt;
int s[10001];
int main(){
cin>>n;
for(int i=1;i<=n;++i){
cin>>s[i];
}
cin>>l>>r;
for(int i=1;i<=n;++i){
if(s[i]>=l && s[i]<=r) cnt++;
}
cout<<cnt;
return 0;
}
//第二题===============================
#include <iostream>
#include <cstring>
using namespace std;
int xjArr[9][9] = {0};
int newxjArr[9][9] = {0};
//8个方向:8邻域
int dx[] = {-1,-1,-1, 0, 0, 1,1,1};
int dy[] = {-1, 0, 1,-1, 1,-1,0,1};
int main()
{
int m, n;
cin >> m >> n;
xjArr[4][4] = m;
for (int k = 0; k < n; k++)
{
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
if (xjArr[i][j] != 0)
{
int x = xjArr[i][j];
newxjArr[i][j] += 2 * x;
int xjm = (10 * x - 2 * x) / 8;
//遍历8个方向,做边界判断
for(int d = 0; d < 8; d++)
{
int ni = i + dx[d];
int nj = j + dy[d];
//必须判断不越界
if(ni >=0 && ni <9 && nj >=0 && nj <9)
{
newxjArr[ni][nj] += xjm;
}
}
}
}
}
memcpy(xjArr, newxjArr, sizeof(xjArr));
memset(newxjArr,0,sizeof(newxjArr));
}
//输出,处理末尾不要多余空格
for (int i = 0; i < 9; i++)
{
for (int j = 0; j < 9; j++)
{
if(j>0) cout << " ";
cout << xjArr[i][j];
}
cout << endl;
}
return 0;
}
//第三题===================================
#include<iostream>
using namespace std;
int m; // 方阵的阶数,矩阵大小是 m × m
int nArr[101][101] = {0}; // 保存方阵数据(题意:1 表示有值,0 表示空
int xNum = 0; // 统计「某一行」中 1 的个数
int yNum = 0; // 统计「某一列」中 1 的个数
int fx = 0; // 保存需要修改的格子所在的行号(x 坐标)
int fy = 0; // 保存需要修改的格子所在的列号(y 坐标)
int fxNum = 0; // 统计「1 的个数是奇数」的行一共有几行
int fyNum = 0; // 统计「1 的个数是奇数」的列一共有几列
int main() {
// 1. 读入方阵的阶数 m
cin >> m;
// 2. 读入 m × m 的方阵数据
for (int i = 0;i < m;i++) {
for (int j = 0;j < m;j++) {
cin >> nArr[i][j];
}
}
// 3. 逐行、逐列统计,找出「1 的个数为奇数」的行和列
for (int i = 0;i < m;i++) {
for (int j = 0;j < m;j++) {
if (nArr[i][j] == 1) { // 累加第 i 行中 1 的个数
xNum++;
}
if (nArr[j][i] == 1) { // 累加第 i 列中 1 的个数
yNum++;
}
}
// (xNum + 1) % 2 == 0 等价于 xNum 是奇数,说明第 i 行有奇数个 1
if ((xNum + 1) % 2 == 0) {
fx = i; // 记下这一行的行号,作为候选要修改的位置
fxNum++; // 奇数行的数量 +1
}
// 同理,判断第 i 列是否也有奇数个 1
if ((yNum + 1) % 2 == 0) {
fy = i; // 记下这一列的列号,作为候选要修改的位置
fyNum++; // 奇数列的数量 +1
}
// 进入下一行/列之前,把计数器清零,避免累加
xNum = 0;
yNum = 0;
}
// 4. 根据统计结果给出结论
if (fxNum >= 2 || fyNum >= 2)
{
// 奇数行(或奇数列)超过 1 个,只改一个格子无法让它们全部变成偶数
cout << "Corrupt" << endl;
}
else if (fxNum == 0 && fyNum == 0)
{
// 所有行、列的 1 都是偶数个,本来就满足条件,无需修改
cout << "OK" << endl;
}
else
{
// 恰好只有一个奇数行和一个奇数列,把它们交叉的那个格子翻转即可
cout << fx+1 << " " << fy+1 << endl;
}
system("pause"); // 暂停窗口,防止控制台一闪而过(仅 Windows 有效)
return 0;
}
//第四题=============================================
#include <bits/stdc++.h>
using namespace std;
string s[101];
int main(){
int i=1;
while(cin>>s[i]){
i++;
}
sort(s+1,s+i);
int a=unique(s+1,s+i)-s;//去重,返回末尾加一的地址
for(int i=1;i<a;++i) cout<<s[i]<<endl;
return 0;
}
//第五题============================================
#include <iostream>
using namespace std;
// 判断一个数是不是好数,返回true代表是好数
bool isGood(int x)
{
int cnt1 = 0, cnt0 = 0;
while(x > 0)
{
if(x % 2 == 1)
cnt1++;
else
cnt0++;
x = x / 2;
}
return cnt1 > cnt0;
}
int main()
{
int N;
cin >> N;
int ans = 0;
for(int i = 1; i <= N; i++)
{
if(isGood(i))
{
ans++;
}
}
cout << ans << endl;
return 0;
}