제출 #582103

#제출 시각아이디문제언어결과실행 시간메모리
582103hibikiDango Maker (JOI18_dango_maker)C++11
0 / 100
13 ms23788 KiB
#include<bits/stdc++.h> using namespace std; #define pb push_back #define f first #define s second #define sz(x) (int)x.size() #define all(x) x.begin(),x.end() int n,m,cnt = 1; char wd[3005][3005]; map<pair<int,int>, int> mp; vector<int> v[1000005]; bool met[1000005]; int main() { scanf("%d %d",&n,&m); for(int i = 0; i < n; i++) { scanf("%s",wd[i]); for(int j = 0; j < m - 2; j++) { if(wd[i][j] == 'R' && wd[i][j + 1] == 'G' && wd[i][j + 2] == 'W') mp[{i,j}] = cnt++; } } for(int i = 0; i < n - 2; i++) { for(int j = 0; j < m; j++) { if(wd[i][j] == 'R' && wd[i + 1][j] == 'G' && wd[i + 2][j] == 'W') { if(mp[{i,j}]) { v[mp[{i,j}]].pb(cnt); v[cnt].pb(mp[{i,j}]); } if(mp[{i + 1,j}]) { v[mp[{i + 1,j}]].pb(cnt); v[cnt].pb(mp[{i + 1,j}]); } if(mp[{i + 2,j}]) { v[mp[{i + 2,j}]].pb(cnt); v[cnt].pb(mp[{i + 2,j}]); } cnt++; } } } int ans = 0; for(int i = 1; i < cnt; i++) { if(!met[i]) { int t[2] = {0,0}; queue<pair<int,int> > q; met[i] = true; q.push({i,0}); t[0]++; while(!q.empty()) { int nw = q.front().f; int ty = q.front().s; q.pop(); for(auto go: v[nw]) { if(!met[go]) { met[go] = true; q.push({go,ty ^ 1}); t[ty ^ 1]++; } } } ans += max(t[0],t[1]); } } printf("%d\n",ans); }

컴파일 시 표준 에러 (stderr) 메시지

dango_maker.cpp: In function 'int main()':
dango_maker.cpp:18:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |     scanf("%d %d",&n,&m);
      |     ~~~~~^~~~~~~~~~~~~~~
dango_maker.cpp:21:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   21 |         scanf("%s",wd[i]);
      |         ~~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...