제출 #225368

#제출 시각아이디문제언어결과실행 시간메모리
225368MKopchevThe Kingdom of JOIOI (JOI17_joioi)C++14
100 / 100
1069 ms55416 KiB
#include<bits/stdc++.h> using namespace std; const int nmax=2e3+42; int n,m; int inp[nmax][nmax]; int mini,maxi; int output; bool can(int cur) { int j_line=0; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) if(inp[i][j]-mini>cur)j_line=max(j_line,j); for(int j=1;j<=j_line;j++) if(maxi-inp[i][j]>cur)return 0; for(int j=j_line+1;j<=m;j++) if(inp[i][j]-mini>cur)return 0; } return 1; } void solve() { int ok=output,not_ok=-1; while(ok-not_ok>1) { int av=(ok+not_ok)/2; if(can(av))ok=av; else not_ok=av; } output=ok; } void rotate_1() { for(int i=1;i<n+1-i;i++) for(int j=1;j<=m;j++) swap(inp[i][j],inp[n+1-i][j]); } void rotate_2() { for(int i=1;i<=n;i++) for(int j=1;j<m+1-j;j++) swap(inp[i][j],inp[i][m+1-j]); } int main() { scanf("%i%i",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) scanf("%i",&inp[i][j]); mini=inp[1][1]; maxi=inp[1][1]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { mini=min(mini,inp[i][j]); maxi=max(maxi,inp[i][j]); } output=maxi-mini; solve(); rotate_1(); solve(); rotate_2(); solve(); rotate_1(); solve(); printf("%i\n",output); return 0; }

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

joioi.cpp: In function 'int main()':
joioi.cpp:58:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i%i",&n,&m);
     ~~~~~^~~~~~~~~~~~~~
joioi.cpp:62:18: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
             scanf("%i",&inp[i][j]);
             ~~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...