답안 #255595

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
255595 2020-08-01T11:58:01 Z tleontest1 Dango Maker (JOI18_dango_maker) C++17
13 / 100
26 ms 35712 KB
#pragma GCC optimize ("O3")
#pragma GCC target ("sse4")
#pragma GCC optimize ("unroll-loops")
#pragma GCC target ("avx2")

#include <bits/stdc++.h>

using namespace std;

typedef long long lo;
typedef pair< lo,lo > PII;

#define fi first
#define se second
#define mp make_pair
#define endl "\n"
#define pb push_back
#define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define FOR for(int i=1;i<=n;i++)
#define mid ((start+end)/2)
#define ort ((bas+son)/2)

const lo inf = 1000000000000000000;
const lo KOK = 100000;
const lo LOG = 30;
const lo li = 3005;
const lo mod = 1000000007;

int n,m,b[li],a[li],k,flag,t,vis[li][li],vis1[li][li],visit[li][li];
int ans;
char c[li][li];
string s;
vector<int> v;

int main(void){
	scanf("%d %d",&n,&m);
	FOR{
		for(int j=1;j<=m;j++){
			scanf(" %c",&c[i][j]);
		}
	}
	int ans1=0;
	FOR{
		for(int j=3;j<=m;j++){
			if(c[i][j]=='W' && c[i][j-1]=='G' && c[i][j-2]=='R'){vis[i][j]=1;vis[i][j-1]=1;vis[i][j-2]=1;}
		}
	}
	for(int j=1;j<=m;j++){
		for(int i=3;i<=n;i++){
			if(c[i][j]=='W' && c[i-1][j]=='G' && c[i-2][j]=='R'){vis1[i][j]=1;vis1[i-1][j]=1;vis1[i-2][j]=1;}
		}
	}
	FOR{
		for(int j=3;j<=m;j++){
			if(c[i][j]!='W' || c[i][j-1]!='G' || c[i][j-2]!='R')continue;
			int at=vis[i][j]+vis[i][j-1]+vis[i][j-2];
			int at1=vis1[i][j]+vis1[i][j-1]+vis1[i][j-2];
			if(at>=at1){ans++;visit[i][j]=1;visit[i][j-1]=1;visit[i][j-2]=1;}
		}
	}
	for(int j=1;j<=m;j++){
		for(int i=3;i<=n;i++){
			if(c[i][j]!='W' || c[i-1][j]!='G' || c[i-2][j]!='R')continue;
			//~ int at=vis[i][j]+vis[i-1][j]+vis[i-2][j];
			//~ int at1=vis1[i][j]+vis1[i-1][j]+vis1[i-2][j];
			if(visit[i][j]==0 && visit[i-1][j]==0 && visit[i-2][j]==0){ans++;}
		}
	}
	memset(visit,0,sizeof(visit));
	for(int j=1;j<=m;j++){
		for(int i=3;i<=n;i++){
			if(c[i][j]!='W' || c[i-1][j]!='G' || c[i-2][j]!='R')continue;
			int at=vis[i][j]+vis[i-1][j]+vis[i-2][j];
			int at1=vis1[i][j]+vis1[i-1][j]+vis1[i-2][j];
			if(at<=at1){ans1++;visit[i][j]=1;visit[i-1][j]=1;visit[i-2][j]=1;}
		}
	}
	FOR{
		for(int j=3;j<=m;j++){
			if(c[i][j]!='W' || c[i][j-1]!='G' || c[i][j-2]!='R')continue;
			//~ int at=vis[i][j]+vis[i][j-1]+vis[i][j-2];
			//~ int at1=vis1[i][j]+vis1[i][j-1]+vis1[i][j-2];
			if(visit[i][j]==0 && visit[i][j-1]==0 && visit[i][j-2]==0){ans1++;}
		}
	}
	printf("%d\n",max(ans,ans1));
	return 0;
}

Compilation message

dango_maker.cpp: In function 'int main()':
dango_maker.cpp:36:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d",&n,&m);
  ~~~~~^~~~~~~~~~~~~~~
dango_maker.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]);
    ~~~~~^~~~~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 22 ms 35712 KB Output is correct
2 Correct 20 ms 35712 KB Output is correct
3 Correct 18 ms 35712 KB Output is correct
4 Correct 18 ms 35712 KB Output is correct
5 Correct 19 ms 35712 KB Output is correct
6 Correct 18 ms 35712 KB Output is correct
7 Correct 18 ms 35712 KB Output is correct
8 Correct 20 ms 35712 KB Output is correct
9 Correct 21 ms 35712 KB Output is correct
10 Correct 20 ms 35712 KB Output is correct
11 Correct 19 ms 35712 KB Output is correct
12 Correct 18 ms 35712 KB Output is correct
13 Correct 19 ms 35712 KB Output is correct
14 Correct 19 ms 35712 KB Output is correct
15 Correct 22 ms 35712 KB Output is correct
16 Correct 19 ms 35712 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 22 ms 35712 KB Output is correct
2 Correct 20 ms 35712 KB Output is correct
3 Correct 18 ms 35712 KB Output is correct
4 Correct 18 ms 35712 KB Output is correct
5 Correct 19 ms 35712 KB Output is correct
6 Correct 18 ms 35712 KB Output is correct
7 Correct 18 ms 35712 KB Output is correct
8 Correct 20 ms 35712 KB Output is correct
9 Correct 21 ms 35712 KB Output is correct
10 Correct 20 ms 35712 KB Output is correct
11 Correct 19 ms 35712 KB Output is correct
12 Correct 18 ms 35712 KB Output is correct
13 Correct 19 ms 35712 KB Output is correct
14 Correct 19 ms 35712 KB Output is correct
15 Correct 22 ms 35712 KB Output is correct
16 Correct 19 ms 35712 KB Output is correct
17 Correct 26 ms 35704 KB Output is correct
18 Correct 18 ms 35712 KB Output is correct
19 Correct 19 ms 35712 KB Output is correct
20 Incorrect 18 ms 35712 KB Output isn't correct
21 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 22 ms 35712 KB Output is correct
2 Correct 20 ms 35712 KB Output is correct
3 Correct 18 ms 35712 KB Output is correct
4 Correct 18 ms 35712 KB Output is correct
5 Correct 19 ms 35712 KB Output is correct
6 Correct 18 ms 35712 KB Output is correct
7 Correct 18 ms 35712 KB Output is correct
8 Correct 20 ms 35712 KB Output is correct
9 Correct 21 ms 35712 KB Output is correct
10 Correct 20 ms 35712 KB Output is correct
11 Correct 19 ms 35712 KB Output is correct
12 Correct 18 ms 35712 KB Output is correct
13 Correct 19 ms 35712 KB Output is correct
14 Correct 19 ms 35712 KB Output is correct
15 Correct 22 ms 35712 KB Output is correct
16 Correct 19 ms 35712 KB Output is correct
17 Correct 26 ms 35704 KB Output is correct
18 Correct 18 ms 35712 KB Output is correct
19 Correct 19 ms 35712 KB Output is correct
20 Incorrect 18 ms 35712 KB Output isn't correct
21 Halted 0 ms 0 KB -