Submission #1086140

#TimeUsernameProblemLanguageResultExecution timeMemory
1086140urd05Closing Time (IOI23_closing)C++17
9 / 100
82 ms13384 KiB
#include "closing.h" #include <bits/stdc++.h> using namespace std; int n; long long pos[3005]; long long save[3005]; vector<long long> v1; vector<long long> v2; int x,y; long long k; int max_score(int N, int X, int Y, long long K, std::vector<int> U, std::vector<int> V, std::vector<int> W) { n=N; x=X; y=Y; k=K; for(int i=0;i<n-1;i++) { pos[i+1]=pos[i]+W[i]; } for(int i=0;i<n;i++) { save[i]=0; } int l=x; int r=y; while (1) { if (l==0&&r==n-1) { break; } if (l!=0&&(r==n-1||pos[x]-pos[l-1]<=pos[r+1]-pos[y])) { l--; v2.push_back(pos[x]-pos[l]); } else { r++; v2.push_back(pos[r]-pos[y]); } } l=x; r=y; while (1) { if (l==y&&r==x) { break; } if (l!=y&&(r==x||pos[l+1]-pos[x]-save[l+1]<=pos[y]-pos[r-1]-save[r-1])) { l++; v1.push_back(pos[l]-pos[x]-save[l]); save[l]=pos[l]-pos[x]; } else { r--; v1.push_back(pos[y]-pos[r]-save[r]); save[r]=pos[y]-pos[r]; } } int ret=0; for(int i=0;i<=v2.size();i++) { long long sum=0; for(int j=0;j<i;j++) { sum+=v2[j]; } if (sum>k) { break; } int cnt=i; for(int j=0;j<v1.size();j++) { if (sum+v1[j]<=k) { sum+=v1[j]; cnt++; } else { break; } } for(int j=0;j<i;j++) { if (sum+pos[y]-pos[x]<=k) { sum+=pos[y]-pos[x]; cnt++; } else { break; } } ret=max(ret,cnt); } return ret+2; }

Compilation message (stderr)

closing.cpp: In function 'int max_score(int, int, int, long long int, std::vector<int>, std::vector<int>, std::vector<int>)':
closing.cpp:60:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |     for(int i=0;i<=v2.size();i++) {
      |                 ~^~~~~~~~~~~
closing.cpp:69:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   69 |         for(int j=0;j<v1.size();j++) {
      |                     ~^~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...