Submission #1503626
Source Code Expand
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include<math.h>
#define swap(type,a,b) do{type t=a;a=b;b=t;}while(0);
#define MAX(a,b) (((a)>(b))?(a):(b))
#define MIN(a,b) (((a)<(b))?(a):(b))
#define ll long long
#define INF 100000000
#define FOR(i,a,n) for(i=a;i<n;i++)
void fill(int a[],int b,int c){
int i;
FOR(i,0,b) a[i]=c;
return;
}
typedef struct{
int a,b,data;
}Pos;
int comp(const void *a,const void *b){
return ((Pos*)b)->data - ((Pos*)a)->data;
}
char map[50][51];
int used[50][50];
int x[400][8],y[400][8];
int dx[4]={0,-1,0,1};
int dy[4]={-1,0,1,0};
int size=0;
int id;
int dfs(int nx,int ny){
int px,py,s=0,i;
Pos d[4];
if(used[nx][ny]) return 0;
used[nx][ny]=1;
x[size][id]=nx+1,y[size][id++]=ny+1;
if(id==8) return 1;
FOR(i,0,4){
px=nx+dx[i],py=ny+dy[i];
if(px>=0&&py>=0&&px<50&&py<50&&!used[px][py]&&map[px][py]!='0'){
d[s].a=px,d[s].b=py,d[s++].data=map[px][py]-'0';
}
}
qsort(d,s,sizeof(Pos),comp);
FOR(i,0,s){
if(dfs(d[i].a,d[i].b)) return 1;
}
return 0;
}
int main(void){
int h,w,n,i,j,k;
scanf("%d%d%d",&h,&w,&n);
FOR(i,0,50) scanf("%s",map[i]);
for(i=9;i>=1;i--){
FOR(j,0,50){
FOR(k,0,50){
if((map[j][k]-'0')==i&&!used[j][k]){
id=0;
if(dfs(j,k)) size++;
}
}
}
}
printf("%d\n",size);
FOR(i,0,size){
FOR(j,0,8){
printf("%d %d\n",x[i][j],y[i][j]);
}
}
}
Submission Info
Submission Time
2017-08-12 20:07:56+0900
Task
A - Multiple Pieces
User
trainstation
Language
C (GCC 5.4.1)
Score
460925
Code Size
1627 Byte
Status
AC
Exec Time
1 ms
Memory
256 KB
Compile Error
./Main.c: In function ‘main’:
./Main.c:50:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%d",&h,&w,&n);
^
./Main.c:51:17: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
FOR(i,0,50) scanf("%s",map[i]);
^
Judge Result
Set Name
test_01
test_02
test_03
test_04
test_05
test_06
test_07
test_08
test_09
test_10
Score / Max Score
48152 / 1343058
44425 / 1343058
47959 / 1343058
39098 / 1343058
48201 / 1343058
42747 / 1343058
52842 / 1343058
42952 / 1343058
44499 / 1343058
50050 / 1343058
Status
Set Name
Test Cases
test_01
subtask_01_01.txt
test_02
subtask_01_02.txt
test_03
subtask_01_03.txt
test_04
subtask_01_04.txt
test_05
subtask_01_05.txt
test_06
subtask_01_06.txt
test_07
subtask_01_07.txt
test_08
subtask_01_08.txt
test_09
subtask_01_09.txt
test_10
subtask_01_10.txt
Case Name
Status
Exec Time
Memory
subtask_01_01.txt
AC
1 ms
256 KB
subtask_01_02.txt
AC
1 ms
256 KB
subtask_01_03.txt
AC
1 ms
256 KB
subtask_01_04.txt
AC
1 ms
256 KB
subtask_01_05.txt
AC
1 ms
256 KB
subtask_01_06.txt
AC
1 ms
256 KB
subtask_01_07.txt
AC
1 ms
256 KB
subtask_01_08.txt
AC
1 ms
256 KB
subtask_01_09.txt
AC
1 ms
256 KB
subtask_01_10.txt
AC
1 ms
128 KB