//1066 图像过滤V1
#include <iostream>
using namespace std;
int main(){
long int M,N,A,B,replace,tmp,i; cin>>M>>N>>A>>B>>replace;
for(i=0;i<N*M;i++){
cin>>tmp;
if(tmp>=A&&tmp<=B) tmp=replace;
printf("%03d%c",tmp,(i+1)%N==0?'\n':' ');
}
return 0;
}
这么短的程序时间复杂度只是N*M呀
cin有缓存,效率比scanf低很多,也可以用cin.sync_with_stdio(false);,但是就不能和c的混用
#include <iostream>
using namespace std;
int main() {
int M, N, A, B, replace, tmp, i;
cin >> M >> N >> A >> B >> replace;
for (i = 0; i < N*M; i++) {
scanf("%d", &tmp);
if (tmp >= A && tmp <= B)
tmp = replace;
printf("%03d%c", tmp, (i + 1) % N == 0 ? '\n' : ' ');
}
return 0;
}
#include <iostream>
using namespace std;
int main() {
int M, N, A, B, replace, tmp, i;
cin >> M >> N >> A >> B >> replace;
cin.sync_with_stdio(false);
for (i = 0; i < N*M; i++) {
cin >> tmp;
if (tmp >= A && tmp <= B)
tmp = replace;
printf("%03d%c", tmp, (i + 1) % N == 0 ? '\n' : ' ');
}
return 0;
}
但是用c就可以通过
#include <stdio.h>
int main() {
int N, M, A, B, C, D;
scanf("%d %d %d %d %d", &M, &N, &A, &B, &C);
for(int i = 0; i < M; i++) {
for(int j = 0; j < N; j++) {
scanf("%d", &D);
if(A <= D && D <= B) D = C;
printf("%03d%c", D, j == N - 1 ? '\n' : ' ');
}
}
return 0;
}