Submission #154626

#TimeUsernameProblemLanguageResultExecution timeMemory
154626jacynkaaBali Sculptures (APIO15_sculpture)C++14
100 / 100
154 ms23272 KiB
#include <bits/stdc++.h> #include <math.h> #include <chrono> using namespace std; #pragma GCC optimize("-O3") #define endl "\n" #define mp make_pair #define st first #define nd second #define pii pair<int, int> #define pb push_back #define _upgrade ios_base::sync_with_stdio(0), cout.setf(ios::fixed), cout.precision(10) //cin.tie(0); cout.tie(0); #define REP(i, n) for (int i = 0; i < (n); ++i) #define FWD(i, a, b) for (int i = (a); i < (b); ++i) #define rep(i, n) for (int i = 0; i < (n); ++i) #define fwd(i, a, b) for (int i = (a); i < (b); ++i) #define all(c) (c).begin(), (c).end() #define what(x) cerr << #x << " is " << x << endl; #define int long long const int MAXN = 2e3 + 10; const int MAXK = 44; //UWAGA unsigned int E[MAXN][MAXN]; int n, a, b; int tab[MAXN]; pii dist[MAXN]; int shortest[MAXN]; bitset<MAXN> wszystkie[MAXN]; void mini(pii A, pii &B) { B.st = min(B.st, A.st + 1); B.nd = max(B.nd, A.nd + 1); } bool solveHeura(int q) //czy wynik zawiera sie na inkluzje w q { fill(dist, dist + MAXN, mp(100000, -100000)); dist[0] = {0, 0}; rep(i, n) for (int k = i + 1; k <= n; k++) { if ((E[i][k] | q) == q) mini(dist[i], dist[k]); } //bitset<64> D(q); //cerr << D << " " << dist[n].st << " " << dist[n].nd << endl; return (dist[n].st <= b && dist[n].nd >= a); } void pre() { cin >> n >> a >> b; rep(i, n) cin >> tab[i]; rep(i, n) { int val = tab[i]; for (int k = i + 1; k <= n; k++) { E[i][k] = val; val += tab[k]; } } } main() { _upgrade; pre(); int wynik = 0; for (int k = MAXK; k >= 0; k--) if (!solveHeura(wynik + (1ll << k) - 1)) wynik += (1ll << k); cout << wynik << endl; }

Compilation message (stderr)

sculpture.cpp: In function 'bool solveHeura(long long int)':
sculpture.cpp:44:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         if ((E[i][k] | q) == q)
             ~~~~~~~~~~~~~~^~~~
sculpture.cpp: At global scope:
sculpture.cpp:68:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main()
      ^
#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...