Submission #103346

#TimeUsernameProblemLanguageResultExecution timeMemory
103346tincamateiArt Exhibition (JOI18_art)C++14
10 / 100
6 ms384 KiB
#include <bits/stdc++.h> using namespace std; const int MAX_N = 500000; struct Paint { long long a, b; }v[1+MAX_N]; bool cmp(Paint a, Paint b) { return a.a < b.a; } 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; long long best, rez, sp; fscanf(fin, "%d", &n); for(int i = 0; i < n; ++i) fscanf(fin, "%lld%lld", &v[i].a, &v[i].b); sort(v, v + n, cmp); sp = rez = 0LL; best = v[0].a; for(int i = 1; i < (1 << n); ++i) { long long minA, maxA, sum; minA = 1LL<<60; maxA = -1; sum = 0LL; for(int j = 0; j < n; ++j) if((1 << j) & i) { sum += v[j].b; minA = min(minA, v[j].a); maxA = max(maxA, v[j].a); } rez = max(rez, sum - (maxA - minA)); } /*for(int i = 0; i < n; ++i) { sp = 0LL; for(int j = i; j < n; ++j) { sp += v[j].b; rez = max(rez, sp - v[j].a + v[i].a); //if(sp - v[j].a + v[i].a == rez) //printf("%d %d->%lld\n", i, j, sp - v[j].a + v[i].a); } }*/ /*for(int i = 0; i < n; ++i) { printf("%lld %lld\n", v[i].a, v[i].b); sp = sp + v[i].b; rez = max(rez, sp - v[i].a + best); best = max(best, -sp + v[i].b + v[i].a); printf("!%lld\n", sp); } */ fprintf(fout, "%lld", rez); fclose(fin); fclose(fout); return 0; }

Compilation message (stderr)

art.cpp: In function 'int main()':
art.cpp:25:12: warning: variable 'best' set but not used [-Wunused-but-set-variable]
  long long best, rez, sp;
            ^~~~
art.cpp:25:23: warning: variable 'sp' set but not used [-Wunused-but-set-variable]
  long long best, rez, sp;
                       ^~
art.cpp:27:8: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  fscanf(fin, "%d", &n);
  ~~~~~~^~~~~~~~~~~~~~~
art.cpp:30:9: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   fscanf(fin, "%lld%lld", &v[i].a, &v[i].b);
   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...