답안 #57292

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
57292 2018-07-14T13:47:15 Z dennisstar 여왕벌 (KOI15_queen) C++11
34 / 100
5000 ms 18180 KB
#include <bits/stdc++.h>
int M, N;
char c[710][710][3][3][3];
int sum[710][710];
int main()
{
	int i, j, k;
	scanf("%d %d", &M, &N);
	for (i=1; i<M; i++) for (j=1; j<M; j++) for (k=0; k<27; k++) scanf(" %c", &c[i][j][k/9][(k%9)/3][k%3]);
	int x, y, z;
	for (i=1; i<M; i++) for (j=1; j<M; j++) for (x=0; x<3; x++) for (y=0; y<3; y++)
		for (z=0; z<3; z++) {
			if (c[i][j][x][y][z]=='L') c[i][j][x][y][z]=x;
			else if (c[i][j][x][y][z]=='D') c[i][j][x][y][z]=y;
			else c[i][j][x][y][z]=z;
		}
	int l, r, lp, rp;
	for (i=0; i<N; i++) {
		scanf("%d %d %d", &x, &y, &z);
		l=(x<M?0:(x-M+1));
		r=((x+y)<M?0:(x+y-M+1));
		sum[0][l]++, sum[0][r]++;
		for (j=1; j<M; j++) {
			lp=l, rp=r;
			if (x+y+j==M) r++;
			if (x+j==M) l++;
			if (l==r) {
				if (r) for (; r<M; r++) if (c[j][r][0][(r-1)<rp?((r-1)<lp?0:1):2][2]==2) break;
				sum[j][r]+=2;
				l=r;
			}
			else {
				if (l) for (; l<=rp+1; l++) if (c[j][l][0][l-1<lp?0:1][l<rp?(l<lp?0:1):2]==1) break;
				if (l>rp+1) {for (; r<M; r++) if (c[j][r][0][r-1<rp?(r-1<lp?0:1):2][2]==2) break;}
				else {r=std::max(r,l+1); for (; r<M; r++) if (c[j][r][1][r-1<rp?(r-1<lp?0:1):2][2]==2) break;}
				if (l>rp+1) l=r;
				sum[j][l]++, sum[j][r]++;
			}
		}
	}
	for (i=0; i<M; i++) {
		for (j=1; j<M; j++) {
			sum[i][j]+=sum[i][j-1];
		}
	}
	for (i=0; i<M; i++) {
		for (j=0; j<M; j++) {
			printf("%d ", sum[i][j]+1);
		}
		puts("");
	}
	return 0;
}

Compilation message

queen.cpp: In function 'int main()':
queen.cpp:8:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &M, &N);
  ~~~~~^~~~~~~~~~~~~~~~~
queen.cpp:9:68: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for (i=1; i<M; i++) for (j=1; j<M; j++) for (k=0; k<27; k++) scanf(" %c", &c[i][j][k/9][(k%9)/3][k%3]);
                                                               ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
queen.cpp:19:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d %d", &x, &y, &z);
   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 380 KB Output is correct
2 Correct 3 ms 484 KB Output is correct
3 Correct 23 ms 1332 KB Output is correct
4 Correct 23 ms 1384 KB Output is correct
5 Correct 225 ms 5120 KB Output is correct
6 Correct 181 ms 5120 KB Output is correct
7 Correct 187 ms 5120 KB Output is correct
8 Correct 520 ms 10968 KB Output is correct
9 Correct 561 ms 10968 KB Output is correct
10 Correct 1308 ms 16864 KB Output is correct
11 Correct 1163 ms 16864 KB Output is correct
12 Correct 1106 ms 16864 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 8 ms 16864 KB Output is correct
2 Correct 258 ms 16864 KB Output is correct
3 Correct 446 ms 16864 KB Output is correct
4 Correct 1440 ms 18180 KB Output is correct
5 Correct 1292 ms 18180 KB Output is correct
6 Correct 1236 ms 18180 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 9 ms 18180 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 5087 ms 18180 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 18180 KB Output is correct
2 Correct 2 ms 18180 KB Output is correct
3 Correct 3 ms 18180 KB Output is correct
4 Correct 3 ms 18180 KB Output is correct
5 Correct 313 ms 18180 KB Output is correct
6 Incorrect 390 ms 18180 KB Output isn't correct
7 Halted 0 ms 0 KB -