Submission #1224234

#TimeUsernameProblemLanguageResultExecution timeMemory
1224234sleepntsheepNautilus (BOI19_nautilus)C++20
0 / 100
169 ms940 KiB
#include <stdio.h> #include <string.h> int r, c, m, dx[] = { -1, 1, 0, 0 }, dy[] = { 0, 0, 1, -1 }, z; int mask[333][333], mask2[333][333]; char d[333], s[333][333]; const char *ss = "EWNS"; int main() { scanf("%d%d%d", &r, &c, &m); for (int i = 0; i < r; ++i) scanf("%s", s[i]); scanf("%s", d); mask[150][150] = 1; for (int i_ = m - 1; i_ >= 0; --i_) { memcpy(mask2, mask, sizeof mask); for (int i = 0; i < 300; ++i) { for (int j = 0; j < 300; ++j) { if (! mask2[i][j]) continue; for (int k = 0; k < 4; ++k) { if (ss[k] == d[i_] || ss[k] == '?') { int i_, j_; i_ = i + dy[k], j_ = j + dx[k]; if (i_ < 300 && j_ < 300) mask[i_][j_] = 1; } } } } } for (int i = 0; i < r; ++i) { for (int j = 0; j < c; ++j) { int i_, j_, ok; i_ = i, j_ = j, ok = 1; if (s[i][j] == '#') continue; for (int i1 = 1110; i1 < r; ++i1) for (int j1 = 0; j1 < c; ++j1) { int di, dj; di = i - i1, dj = j - j1; if (s[i1][j1] == '#' && mask[150 + di][150 + dj]) { ok = 0; } } for (int i1 = 50; i1 <= 250; ++i1) for (int j1 = 50; j1 <= 250; ++j1) { if (! mask[i1][j1]) continue; int di, dj, i_, j_; di = i1 - 150, dj = j1 - 150; //printf(" Mask %d %d\n",i1,j1); i_ = i + di, j_ = j + dj; //printf(" %d %d %d %d %d %d \n",i,j,di,dj,i_,j_); if (i_ < 0 || j_ < 0 || i_ >= r || j_ >= c || s[i_][j_] == '#') ok = 0; } if (ok) ++z; } } printf("%d\n", z); return 0; }

Compilation message (stderr)

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