답안 #57290

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
57290 2018-07-14T13:41:47 Z dennisstar 여왕벌 (KOI15_queen) C++11
34 / 100
5000 ms 83776 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<rp?l-1<lp?0:1:2)][(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 {for (; r<M; r++) if (c[j][r][(r-1<l?0: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 376 KB Output is correct
2 Correct 2 ms 492 KB Output is correct
3 Correct 25 ms 1768 KB Output is correct
4 Correct 25 ms 2072 KB Output is correct
5 Correct 251 ms 8372 KB Output is correct
6 Correct 202 ms 10640 KB Output is correct
7 Correct 166 ms 13092 KB Output is correct
8 Correct 459 ms 25820 KB Output is correct
9 Correct 463 ms 32832 KB Output is correct
10 Correct 1174 ms 51736 KB Output is correct
11 Correct 1181 ms 65288 KB Output is correct
12 Correct 1053 ms 78560 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 78560 KB Output is correct
2 Correct 226 ms 78560 KB Output is correct
3 Correct 448 ms 78560 KB Output is correct
4 Correct 1287 ms 83736 KB Output is correct
5 Correct 1309 ms 83776 KB Output is correct
6 Correct 1268 ms 83776 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 11 ms 83776 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 5067 ms 83776 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 4 ms 83776 KB Output is correct
2 Correct 3 ms 83776 KB Output is correct
3 Correct 2 ms 83776 KB Output is correct
4 Correct 2 ms 83776 KB Output is correct
5 Correct 313 ms 83776 KB Output is correct
6 Incorrect 285 ms 83776 KB Output isn't correct
7 Halted 0 ms 0 KB -