题目描述
情报小组截获了若干个可疑密码,这些密码都是4位数。现在他们获得了一条最新情报:个位数与千位数的和 减去十位数与百位数的和,结果是一个正数。请你帮助情报组筛选目前的可疑密码。
输入
输入两行,第一行是:筛选前可疑密码的个数n(0<n≤100)。
第二行是:待筛选的n个可疑密码,密码之间空格分隔。
输出
输出两行,第一行是:筛选后可疑密码的个数。
第二行是:筛选后的可疑密码,密码之间空格分隔(若个数为0,不输出任何密码)。
样例输入 Copy
【样例1】 4 9119 8248 7356 1151 【样例2】 3 2881 3743 5762
样例输出 Copy
【样例1】 3 9119 8248 7356 【样例2】 0
代码实现:
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int a[199],b[199],c[199],d[199],e[199];
int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n;cin>>n;int cnt=0;for(int i=1;i<=n;i++){cin>>a[i];}for(int i=1;i<=n;i++){b[i]=a[i]/1000;c[i]=(a[i]%1000)/100;d[i]=(a[i]%100)/10;e[i]=a[i]%10;}for(int i=1;i<=n;i++){if((b[i]+e[i]-c[i]-d[i])>0){cnt++;}}if(cnt!=0){cout<<cnt<<"\n";}else{cout<<0;return 0;}for(int i=1;i<=n;i++){if((b[i]+e[i]-c[i]-d[i])>0){cout<<a[i]<<" ";}}return 0;
}