Submission #95311

# Submission time Handle Problem Language Result Execution time Memory
95311 2019-01-30T04:57:12 Z Retro3014 None (JOI14_ho_t1) C++17
0 / 100
2 ms 504 KB
#include <iostream>
#include <algorithm>
#include <vector>
#include <stdio.h>

#define MAX_N 1000
using namespace std;

int N, M;

char c[MAX_N+1][MAX_N+1];
char ch[2][2];
int sum;
int ans;


int differ(int x, int y){
	int ret=0;
	if(x>=N || y>=M)	return -1;
	for(int i=0; i<2; i++){
		for(int j=0; j<2; j++){
			if(c[x+i][y+j]!=ch[i][j])	ret++;
		}
	}
	return ret;
}

bool same(int x, int y){
	return (differ(x, y)==0);
}



int main(){
	scanf("%d%d", &N, &M);
	for(int i=0; i<N; i++){
		getchar();
		for(int j=0; j<M; j++){
			scanf("%c", &c[i][j]);
			//printf("%c", c[i][j]);
		}//cout<<endl;
	}
	for(int i=0; i<2; i++){
		getchar();
		for(int j=0; j<2; j++)	{
			scanf("%c", &ch[i][j]);
			//printf("%c", ch[i][j]);
		}//cout<<endl;
	}
	for(int i=0; i<N-1; i++){
		for(int j=0; j<M-1; j++){
			sum+=same(i, j);
		}
	}
	//cout<<sum<<endl;
	ans = max(ans, sum);
	int sum2;
	for(int i=0; i<N-1; i++){
		for(int j=0; j<M-1; j++){
			if(differ(i, j)!=1)	continue;
			sum2 = sum;
			int ii, jj;
			for(ii=max(0, i-1); ii<min(N-1,i+2); ii++){
				for(jj=max(0, j-1); jj<min(M-1, j+2); jj++){
					sum2-=same(ii, jj);
				}
			}
			char prv;
			for(ii=0; ii<2; ii++){
				for(jj=0; jj<2; jj++){
					if(c[i+ii][j+jj]!=ch[ii][jj]){
						prv = c[i+ii][j+jj];
						c[i+ii][j+jj] = ch[ii][jj];
						break;
					}
				}
			}
			for(ii=max(0, i-1); ii<min(N-1,i+2); ii++){
				for(jj=max(0, j-1); jj<min(M-1, j+2); jj++){
					//cout<<ii<<" "<<jj<<" "<<same(ii, jj)<<endl;
					sum2+=same(ii, jj);
				}
			}
			//printf("%d %d %d\n", i, j, sum2);
			ans = max(ans, sum2);
			c[i+ii][j+jj] = prv;
		}
	}

	printf("%d", ans);
	return 0;
}

Compilation message

2014_ho_t1.cpp: In function 'int main()':
2014_ho_t1.cpp:35:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d", &N, &M);
  ~~~~~^~~~~~~~~~~~~~~~
2014_ho_t1.cpp:39:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%c", &c[i][j]);
    ~~~~~^~~~~~~~~~~~~~~~
2014_ho_t1.cpp:46:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
    scanf("%c", &ch[i][j]);
    ~~~~~^~~~~~~~~~~~~~~~~
2014_ho_t1.cpp:86:18: warning: 'prv' may be used uninitialized in this function [-Wmaybe-uninitialized]
    c[i+ii][j+jj] = prv;
    ~~~~~~~~~~~~~~^~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 376 KB Output is correct
10 Correct 2 ms 376 KB Output is correct
11 Correct 2 ms 376 KB Output is correct
12 Correct 2 ms 376 KB Output is correct
13 Correct 2 ms 380 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 376 KB Output is correct
16 Correct 2 ms 376 KB Output is correct
17 Correct 2 ms 376 KB Output is correct
18 Incorrect 2 ms 504 KB Output isn't correct
19 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 376 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 376 KB Output is correct
10 Correct 2 ms 376 KB Output is correct
11 Correct 2 ms 376 KB Output is correct
12 Correct 2 ms 376 KB Output is correct
13 Correct 2 ms 380 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 376 KB Output is correct
16 Correct 2 ms 376 KB Output is correct
17 Correct 2 ms 376 KB Output is correct
18 Incorrect 2 ms 504 KB Output isn't correct
19 Halted 0 ms 0 KB -