제출 #109684

#제출 시각아이디문제언어결과실행 시간메모리
109684tincamateiTwo Dishes (JOI19_dishes)C++14
10 / 100
123 ms57976 KiB
#include <bits/stdc++.h> using namespace std; const int MAX_N = 1000000; const int SUBTASK = 2000; struct Dish { int len, art; long long limit; } v1[1+MAX_N], v2[1+MAX_N]; long long sp1[1+MAX_N], sp2[1+MAX_N]; long long dp[1+SUBTASK][1+SUBTASK]; bool dish[1+SUBTASK][1+SUBTASK]; int main() { #ifdef HOME FILE *fin = fopen("input.in", "r"); FILE *fout = fopen("output.out", "w"); #else FILE *fin = stdin; FILE *fout = stdout; #endif int n, m; fscanf(fin, "%d%d", &n, &m); for(int i = 1; i <= n; ++i) { fscanf(fin, "%d%lld%d", &v1[i].len, &v1[i].limit, &v1[i].art); sp1[i] = sp1[i - 1] + v1[i].len; if(sp1[i] <= v1[i].limit) dp[i][0] = dp[i - 1][0] + v1[i].art; else dp[i][0] = dp[i - 1][0]; dish[i][0] = 0; } for(int i = 1; i <= m; ++i) { fscanf(fin, "%d%lld%d", &v2[i].len, &v2[i].limit, &v2[i].art); sp2[i] = sp2[i - 1] + v2[i].len; if(sp2[i] <= v2[i].limit) dp[0][i] = dp[0][i - 1] + v2[i].art; else dp[0][i] = dp[0][i - 1]; dish[0][i] = 1; } for(int i = 1; i <= n; ++i) for(int j = 1; j <= m; ++j) { long long t = sp1[i] + sp2[j]; long long c1 = dp[i - 1][j], c2 = dp[i][j - 1]; if(t <= v1[i].limit) c1 += v1[i].art; if(t <= v2[j].limit) c2 += v2[j].art; if(c1 > c2) dish[i][j] = 0; else dish[i][j] = 1; dp[i][j] = max(c1, c2); } fprintf(fout, "%lld", dp[n][m]); fclose(fin); fclose(fout); return 0; }

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

dishes.cpp: In function 'int main()':
dishes.cpp:27:8: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  fscanf(fin, "%d%d", &n, &m);
  ~~~~~~^~~~~~~~~~~~~~~~~~~~~
dishes.cpp:29:9: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   fscanf(fin, "%d%lld%d", &v1[i].len, &v1[i].limit, &v1[i].art);
   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dishes.cpp:38:9: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   fscanf(fin, "%d%lld%d", &v2[i].len, &v2[i].limit, &v2[i].art);
   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...