Submission #69881148
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef signed long long ll;
#define _P(...) (void)printf(__VA_ARGS__)
#define FOR(x,to) for(x=0;x<(to);x++)
#define FORR(x,arr) for(auto& x:arr)
#define FORR2(x,y,arr) for(auto& [x,y]:arr)
#define ALL(a) (a.begin()),(a.end())
#define ZERO(a) memset(a,0,sizeof(a))
#define MINUS(a) memset(a,0xff,sizeof(a))
template<class T> bool chmax(T &a, const T &b) { if(a<b){a=b;return 1;}return 0;}
template<class T> bool chmin(T &a, const T &b) { if(a>b){a=b;return 1;}return 0;}
//-------------------------------------------------------
int N,Q;
int W[40202],V[40202];
ll dp[40202][512];
int L[202020],R[202020],C[202020];
ll ret[202020];
void dfs(int CL,int CR,vector<int> cand) {
if(CL+1==CR) {
FORR(c,cand) {
if(W[CL]<=C[c]) ret[c]=V[CL];
}
return;
}
int CM=(CL+CR)/2;
int i,j,x,y;
FOR(x,501) {
dp[CM-1][x]=0;
dp[CM][x]=0;
}
for(x=W[CM-1];x<=500;x++) dp[CM-1][x]=V[CM-1];
for(x=W[CM];x<=500;x++) dp[CM][x]=V[CM];
for(x=CM-2;x>=CL;x--) {
FOR(y,501) {
dp[x][y]=dp[x+1][y];
if(y>=W[x]) dp[x][y]=max(dp[x][y],dp[x+1][y-W[x]]+V[x]);
}
FOR(y,501) dp[x][y+1]=max(dp[x][y+1],dp[x][y]);
}
for(x=CM+1;x<CR;x++) {
FOR(y,501) {
dp[x][y]=dp[x-1][y];
if(y>=W[x]) dp[x][y]=max(dp[x][y],dp[x-1][y-W[x]]+V[x]);
}
FOR(y,501) dp[x][y+1]=max(dp[x][y+1],dp[x][y]);
}
vector<int> C1,C2;
FORR(c,cand) {
if(R[c]<=CM) C1.push_back(c);
else if(CM<=L[c]) C2.push_back(c);
else {
FOR(x,C[c]+1) ret[c]=max(ret[c],dp[L[c]][x]+dp[R[c]-1][C[c]-x]);
}
}
dfs(CL,CM,C1);
dfs(CM,CR,C2);
}
void solve() {
int i,j,k,l,r,x,y; string s;
cin>>N;
FOR(i,N) {
cin>>W[i]>>V[i];
}
cin>>Q;
vector<int> cand;
FOR(i,Q) {
cin>>L[i]>>R[i]>>C[i];
L[i]--;
cand.push_back(i);
}
dfs(0,1<<15,cand);
FOR(i,Q) cout<<ret[i]<<endl;
}
int main(int argc,char** argv){
string s;int i;
if(argc==1) ios::sync_with_stdio(false), cin.tie(0);
FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
cout.tie(0); solve(); return 0;
}
Submission Info
| Submission Time |
|
| Task |
G - Range Knapsack Query |
| User |
kmjp |
| Language |
C++ 20 (gcc 12.2) |
| Score |
575 |
| Code Size |
2124 Byte |
| Status |
AC |
| Exec Time |
813 ms |
| Memory |
163184 KiB |
Compile Error
Main.cpp: In function ‘void dfs(int, int, std::vector<int>)’:
Main.cpp:29:13: warning: unused variable ‘i’ [-Wunused-variable]
29 | int i,j,x,y;
| ^
Main.cpp:29:15: warning: unused variable ‘j’ [-Wunused-variable]
29 | int i,j,x,y;
| ^
Main.cpp: In function ‘void solve()’:
Main.cpp:66:15: warning: unused variable ‘j’ [-Wunused-variable]
66 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:66:17: warning: unused variable ‘k’ [-Wunused-variable]
66 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:66:19: warning: unused variable ‘l’ [-Wunused-variable]
66 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:66:21: warning: unused variable ‘r’ [-Wunused-variable]
66 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:66:23: warning: unused variable ‘x’ [-Wunused-variable]
66 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp:66:25: warning: unused variable ‘y’ [-Wunused-variable]
66 | int i,j,k,l,r,x,y; string s;
| ^
Main.cpp: In function ‘int main(int, char**)’:
Main.cpp:6:19: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
6 | #define FOR(x,to) for(x=0;x<(to);x++)
| ^~~
Main.cpp:88:9: note: in expansion of macro ‘FOR’
88 | FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
| ^~~
Main.cpp:6:19: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’
6 | #define FOR(x,to) for(x=0;x<(to);x++)
| ^~~
Main.cpp:88:45: note: in expansion of macro ‘FOR’
88 | FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
| ^~~
Main.cpp:6:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
6 | #define FOR(x,to) for(x=0;x<(to);x++)
| ^
Main.cpp:88:45: note: in expansion of macro ‘FOR’
88 | FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
| ^~~
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
575 / 575 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00_sample_00.txt, 00_sample_01.txt |
| All |
00_sample_00.txt, 00_sample_01.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 01_small_06.txt, 01_small_07.txt, 02_large_00.txt, 02_large_01.txt, 02_large_02.txt, 02_large_03.txt, 02_large_04.txt, 02_large_05.txt, 02_large_06.txt, 02_large_07.txt, 02_large_08.txt, 02_large_09.txt, 02_large_10.txt, 02_large_11.txt, 02_large_12.txt, 02_large_13.txt, 02_large_14.txt, 02_large_15.txt, 02_large_16.txt, 02_large_17.txt, 02_large_18.txt, 02_large_19.txt, 02_large_20.txt, 02_large_21.txt, 02_large_22.txt, 02_large_23.txt, 02_large_24.txt, 02_large_25.txt, 02_large_26.txt, 02_large_27.txt, 02_large_28.txt, 02_large_29.txt, 02_large_30.txt, 02_large_31.txt, 02_large_32.txt, 02_large_33.txt, 02_large_34.txt, 02_large_35.txt, 03_handmade_00.txt, 03_handmade_01.txt, 03_handmade_02.txt, 03_handmade_03.txt, 03_handmade_04.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_00.txt |
AC |
484 ms |
134656 KiB |
| 00_sample_01.txt |
AC |
478 ms |
134472 KiB |
| 01_small_00.txt |
AC |
629 ms |
143592 KiB |
| 01_small_01.txt |
AC |
696 ms |
145360 KiB |
| 01_small_02.txt |
AC |
734 ms |
149276 KiB |
| 01_small_03.txt |
AC |
480 ms |
134768 KiB |
| 01_small_04.txt |
AC |
673 ms |
145864 KiB |
| 01_small_05.txt |
AC |
499 ms |
135608 KiB |
| 01_small_06.txt |
AC |
672 ms |
145892 KiB |
| 01_small_07.txt |
AC |
700 ms |
145836 KiB |
| 02_large_00.txt |
AC |
732 ms |
141536 KiB |
| 02_large_01.txt |
AC |
779 ms |
141684 KiB |
| 02_large_02.txt |
AC |
728 ms |
140912 KiB |
| 02_large_03.txt |
AC |
773 ms |
140952 KiB |
| 02_large_04.txt |
AC |
693 ms |
139928 KiB |
| 02_large_05.txt |
AC |
729 ms |
139932 KiB |
| 02_large_06.txt |
AC |
732 ms |
141508 KiB |
| 02_large_07.txt |
AC |
777 ms |
141536 KiB |
| 02_large_08.txt |
AC |
734 ms |
140976 KiB |
| 02_large_09.txt |
AC |
774 ms |
140888 KiB |
| 02_large_10.txt |
AC |
689 ms |
140096 KiB |
| 02_large_11.txt |
AC |
731 ms |
140028 KiB |
| 02_large_12.txt |
AC |
732 ms |
141628 KiB |
| 02_large_13.txt |
AC |
778 ms |
141608 KiB |
| 02_large_14.txt |
AC |
732 ms |
140848 KiB |
| 02_large_15.txt |
AC |
776 ms |
140864 KiB |
| 02_large_16.txt |
AC |
691 ms |
140016 KiB |
| 02_large_17.txt |
AC |
727 ms |
140092 KiB |
| 02_large_18.txt |
AC |
764 ms |
141564 KiB |
| 02_large_19.txt |
AC |
811 ms |
141660 KiB |
| 02_large_20.txt |
AC |
760 ms |
141052 KiB |
| 02_large_21.txt |
AC |
805 ms |
141060 KiB |
| 02_large_22.txt |
AC |
723 ms |
139932 KiB |
| 02_large_23.txt |
AC |
764 ms |
139904 KiB |
| 02_large_24.txt |
AC |
767 ms |
141672 KiB |
| 02_large_25.txt |
AC |
813 ms |
141676 KiB |
| 02_large_26.txt |
AC |
767 ms |
140956 KiB |
| 02_large_27.txt |
AC |
813 ms |
140904 KiB |
| 02_large_28.txt |
AC |
725 ms |
139872 KiB |
| 02_large_29.txt |
AC |
761 ms |
139932 KiB |
| 02_large_30.txt |
AC |
767 ms |
141624 KiB |
| 02_large_31.txt |
AC |
809 ms |
141608 KiB |
| 02_large_32.txt |
AC |
760 ms |
140832 KiB |
| 02_large_33.txt |
AC |
806 ms |
140816 KiB |
| 02_large_34.txt |
AC |
722 ms |
139932 KiB |
| 02_large_35.txt |
AC |
759 ms |
139956 KiB |
| 03_handmade_00.txt |
AC |
678 ms |
143508 KiB |
| 03_handmade_01.txt |
AC |
699 ms |
163184 KiB |
| 03_handmade_02.txt |
AC |
805 ms |
141768 KiB |
| 03_handmade_03.txt |
AC |
676 ms |
142328 KiB |
| 03_handmade_04.txt |
AC |
781 ms |
142244 KiB |