Submission #224504

#TimeUsernameProblemLanguageResultExecution timeMemory
224504Ruxandra985Dango Maker (JOI18_dango_maker)C++14
0 / 100
6 ms512 KiB
#include <bits/stdc++.h> using namespace std; char a[3010][3010]; int dp[3010][3010][3]; int main() { FILE *fin = stdin; FILE *fout = stdout; int n , m , dif , i , j , sol = 0; fscanf (fin,"%d%d\n",&n,&m); for (i = 1 ; i <= n ; i++) fgets(a[i] + 1 , m + 10 , fin); for (dif = 1 - m ; dif <= n - 1 ; dif++){ for (i = 1 ; i <= n ; i++){ /// i - j = dif j = i - dif; if (j <= 0 || j > m) continue; /// nu e ok /// acum avem o pereche i j dp[i][j][0] = max(dp[i - 1][j + 1][0] ,max ( dp[i - 1][j + 1][1] , dp[i - 1][j + 1][2] )); /// nu mi se impune nimic pt ca nu l iau pe i j if (a[i][j - 1] == 'R' && a[i][j] == 'G' && a[i][j + 1] == 'W') dp[i][j][1] = max(dp[i - 1][j + 1][0] , dp[i - 1][j + 1][1]) + 1; /// R G W orizontal if (a[i - 1][j] == 'R' && a[i][j] == 'G' && a[i + 1][j] == 'W') dp[i][j][1] = max(dp[i - 1][j + 1][0] , dp[i - 1][j + 1][2]) + 1; /// R G W vertical if (i + 1 > n || j - 1 <= 0) /// stare finala, n o mai folosesc la nimic sol += max(dp[i][j][0] , max(dp[i][j][1] , dp[i][j][2])); } } fprintf (fout,"%d",sol); return 0; }

Compilation message (stderr)

dango_maker.cpp: In function 'int main()':
dango_maker.cpp:12:12: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     fscanf (fin,"%d%d\n",&n,&m);
     ~~~~~~~^~~~~~~~~~~~~~~~~~~~
dango_maker.cpp:14:14: warning: ignoring return value of 'char* fgets(char*, int, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
         fgets(a[i] + 1 , m + 10 , fin);
         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...