Submission #1072804

#TimeUsernameProblemLanguageResultExecution timeMemory
1072804CyanberryGlobal Warming (CEOI18_glo)C++14
10 / 100
70 ms3528 KiB
// earth cooling #include <bits/stdc++.h> using namespace std; #define int long long signed main() { int dayc, limit; cin>>dayc>>limit; int days[dayc]; for (int i = 0; i < dayc; ++i) { cin>>days[i]; } vector<int> LISs[2]; for (int i=0; i < dayc; ++i) { if (LISs[0].size() > 0) { int l = -1, r = LISs[0].size(); while (r - l > 1) { int m = (r+l)/2; if (LISs[0][m] >= days[i]) { r = m; } else { l = m; } } if (r >= LISs[0].size()) { LISs[0].push_back(days[i]); LISs[1].push_back(days[i] + limit); } else { LISs[0][r] = min(LISs[0][r], days[i]); } days[i] += limit; l = -1, r = LISs[0].size(); while (r - l > 1) { int m = (r+l)/2; if (LISs[0][m] >= days[i]) { r = m; } else { l = m; } } if (r >= LISs[1].size()) { LISs[1].push_back(days[i]); } else { LISs[1][r] = min(LISs[1][r], days[i]); } l = -1, r = LISs[1].size(); while (r - l > 1) { int m = (r+l)/2; if (LISs[1][m] >= days[i]) { r = m; } else { l = m; } } if (r >= LISs[1].size()) { LISs[1].push_back(days[i]); } else { LISs[1][r] = min(LISs[1][r], days[i]); } } else { LISs[0].push_back(days[i]); LISs[1].push_back(days[i] + limit); } } // for (int i : LISs[0]) { // cout<<i<<' '; // } // cout<<'\n'; // for (int i : LISs[1]) { // cout<<i<<' '; // } // cout<<'\n'; cout<<LISs[1].size(); // if (limit == 0) { // vector<int> LISs; // for (int i = 0; i < dayc; ++i) { // int l = -1, r = LISs.size(); // while (r - l > 1) { // int m = (r+l)/2; // if (LISs[m] >= days[i]) { // r = m; // } else { // l = m; // } // } // if (r == LISs.size()) { // LISs.push_back(days[i]); // } else { // LISs[r] = min(LISs[r], days[i]); // } // } // cout<<LISs.size(); // } else if (limit <= 50 && dayc <= 50) { // int leftBound, rightBound, modifier, out = 0; // for (leftBound = 0; leftBound < dayc; ++leftBound) { // for (rightBound = leftBound + 1; rightBound <= dayc; ++rightBound) { // for (modifier = -limit; modifier < limit; ++modifier) { // vector<int> LISs; // for (int i = 0; i < dayc; ++i) { // int l = -1, r = LISs.size(); // while (r - l > 1) { // int m = (r+l)/2; // if (LISs[m] >= days[i] + (i < rightBound && i > leftBound) * modifier) { // r = m; // } else { // l = m; // } // } // if (r == LISs.size()) { // LISs.push_back(days[i] + (i < rightBound && i > leftBound) * modifier); // } else { // LISs[r] = min(LISs[r], days[i] + (i < rightBound && i > leftBound) * modifier); // } // } // out = max(out, int(LISs.size())); // } // } // } // cout<<out; // } else if (days <= 1000) { // } else if (limit <= 5) { // } else { // } // cout<<end1; // } }

Compilation message (stderr)

glo.cpp: In function 'int main()':
glo.cpp:25:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   25 |             if (r >= LISs[0].size()) {
      |                 ~~^~~~~~~~~~~~~~~~~
glo.cpp:41:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |             if (r >= LISs[1].size()) {
      |                 ~~^~~~~~~~~~~~~~~~~
glo.cpp:55:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |             if (r >= LISs[1].size()) {
      |                 ~~^~~~~~~~~~~~~~~~~
#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...