Submission #00247


ソースコード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include<stdio.h>
#include<string.h>
#define MAX_SIZE 10001
int n;
int c;
//int p1[MAX_SIZE][MAX_SIZE];//p[1][1]からp[1001][1001]まで
int p2[MAX_SIZE][MAX_SIZE];//上と同様
int JUDGE(void);//判定する関数
int CHANGE(void);//2枚目以降の判定結果を返す
int LEFTRIGHT(void);//左右
int main(){
int i,j;
char k[MAX_SIZE];
int ans;
scanf("%d %d",&c,&n);
//1枚目の入力(文字列からの変換)
for(i=1;i<=n;i++){
scanf("%s",k);
for(j=1;j<=n;j++){
if(k[j-1]=='1'){
p2[i][j]=1;
}else{
p2[i][j]=0;
}
}
}
ans=JUDGE();
for(i=0;i<c-1;i++){
ans=ans+CHANGE();
}
printf("%d\n",ans);
return(0);
}
int JUDGE(void){
return(LEFTRIGHT());
}
int CHANGE(void){
int d;
int r,c;
int i,j;
scanf("%d",&d);
for(i=0;i<d;i++){
scanf("%d %d",&r,&c);
if(p2[r][c]==1){
p2[r][c]=0;
}else{
p2[r][c]=1;
}
}
return(JUDGE());
}
int LEFTRIGHT(){
int i,j,z,I;
int flag=1;
for(i=1;i<=n&&flag==1;i++){
for(j=1,z=n;j+1!=z;j++,z--){
if(p2[i][j]!=p2[i][z]||p2[i][j]!=p2[n-i+1][j]){
flag=0;
break;
}
}
}
return(flag);
}

ステータス

項目 データ
問題 0006 - 品質管理
ユーザー名 ei1733
投稿日時 2018-07-30 11:34:50
言語 C++11
状態 Time Limit Exceeded
得点 0
ソースコード長 1229 Byte
最大実行時間 2000 ms
最大メモリ使用量 39992 KB

セット

セット 得点 Cases
1 ALL 0 / 12 *

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
00-sample1.in AC 24 ms 480 KB
1
00-sample2.in AC 24 ms 552 KB
1
20-maxsymm01.in TLE 2000 ms 39928 KB
1
20-maxsymm02.in TLE 2000 ms 39752 KB
1
40-symm-unsymm01.in TLE 2000 ms 39832 KB
1
40-symm-unsymm02.in WA 1773 ms 39792 KB
1
40-symm-unsymm03.in WA 1276 ms 39744 KB
1
40-symm-unsymm04.in WA 1238 ms 39828 KB
1
40-symm-unsymm05.in WA 1457 ms 39912 KB
1
40-symm-unsymm06.in TLE 2000 ms 39992 KB
1