Submission #83479

#TimeUsernameProblemLanguageResultExecution timeMemory
83479ekremThe Kingdom of JOIOI (JOI17_joioi)C++98
0 / 100
2 ms876 KiB
#include <bits/stdc++.h> #define st first #define nd second #define mp make_pair #define pb push_back #define orta ((bas+son)/2) #define inf 1000000000 #define N 2005 using namespace std; int n, m, bas, ans = inf, son, a[N][N], mx[N][N], mn[N][N]; void cevir(); void hazirla(); bool dene(int frk){ int bas = 0, emn = inf, emx = 0, sumn = inf, sumx = 0; for(int i = 1; i <= n; i++){ for(int j = 1; j <= bas; j++){ emn = min(emn, a[i][j]); emx = max(emx, a[i][j]); } if(emx - emn > frk) return 0; for(; bas <= n; bas++){ if((bas == n or max(mx[i][bas+1],sumx)-min(mn[i][bas+1],sumn)<=frk) and (!bas or emx - emn <= frk) ) break; emn = min(emn, a[i][bas + 1]); emx = max(emx, a[i][bas + 1]); } if(bas > n) return 0; sumx = max(sumx, mx[i][bas + 1]); sumn = min(sumn, mn[i][bas + 1]); } return (bas <= n); } void coz(){ hazirla(); bas = 0; son = inf; while(bas < son){ if(dene(orta)) son = orta; else bas = orta + 1; } ans = min(ans, orta); } int main() { // freopen("in.txt", "r", stdin); // freopen("out.txt", "w", stdout); scanf("%d %d",&n ,&m); for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) scanf("%d",&a[i][j]); coz(); cevir(); coz(); printf("%d\n", ans); return 0; } void cevir(){ for(int i = 1; i <= n; i++) reverse(a[i] + 1, a[i] + m + 1); } void hazirla(){ for(int i = 1; i <= n; i++){ mn[i][m + 1] = inf; for(int j = m; j >= 1; j--){ mn[i][j] = min(a[i][j], mn[i][j + 1]); mx[i][j] = max(a[i][j], mx[i][j + 1]); } } }

Compilation message (stderr)

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