QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#524217 | #5669. Traveling in Jade City | ucup-team3699# | Compile Error | / | / | C++20 | 4.9kb | 2024-08-19 12:54:14 | 2024-08-19 12:54:14 |
Judging History
answer
//#include<bits/stdc++.h>
using namespace std;
#define int long long
#define pb push_back
#define F first
#define S second
const int mol=998244353;
const int N = 1e6+5;
int c[N], x[N];
set<int>n1, n2;
int pre1[1000005], pre2[1000005];
int n, k, m, q;
bool no(int t1, int t2){
if(t2==-1){
if(*n1.lower_bound(t1)>=n+1) return 1;
return 0;
}
if(t1>t2) swap(t1, t2);
if(t2<=n){
if(*n1.lower_bound(t1)>=t2) return 1;
return 0;
}
else{
if(t1==1) t1=0;
else t1-=n;
t2-=n;
if(*n2.lower_bound(t1)>=t2) return 1;
return 0;
}
}
void solve(){
cin>>n>>k>>m>>q;
for(int i=1;i<=n;i++) cin>>c[i], pre1[i]=pre1[i-1]+c[i];
for(int i=0;i<=m;i++) {
cin>>x[i];
if(i==0) pre2[i]=x[i];
else pre2[i]=pre2[i-1]+x[i];
}
n1.insert(1e18), n2.insert(1e18);
while(q--){
char t;
cin>>t;
if(t=='q'){
int g, h;
cin>>g>>h;
if(g==h){
cout<<"0\n";
continue;
}
if(g>h) swap(g, h);
int ans=1e18;
if(h<=k){
if(*n1.lower_bound(g)>=h) ans=pre1[h-1]-pre1[g-1];
if(no(1, g)&&no(1, n+m+1)&&no(h, k)) ans=min(ans, pre1[g-1]+pre2[m]+pre1[k-1]-pre1[h-1]);
if(no(1, g)&&no(h, -1)) ans=min(ans, pre1[n]-pre1[h-1]+pre1[g-1]);
}
else if(h<=n){
if(g<k){
if(no(g, h)) ans=pre1[h-1]-pre1[g-1];
if(no(1, g)&&no(h, -1)) ans=min(ans, pre1[g-1]+pre1[n]-pre1[h-1]);
if(n2.size()==0){
if(no(g, k)&&no(h, -1)) ans=min(ans, pre2[m]+pre1[k-1]-pre1[g-1]+pre1[n]-pre1[h-1]);
if(no(1, g)&&no(k, h)) ans=min(ans, pre2[m]+pre1[g-1]+pre1[h-1]-pre1[k-1]);
}
}
else{
if(no(g, h)) ans=pre1[h-1]-pre1[g-1];
if(no(h, -1)&&no(k, g)&&no(1, n+m+1)) ans=min(ans, pre1[g-1]-pre1[k-1]+pre2[m]+pre1[n]-pre1[h-1]);
if(no(1, g)&&no(h, -1)) ans=min(ans, pre1[n]-pre1[h-1]+pre1[g-1]);
}
}
else{
if(g==1){
if(no(1, h)) ans=min(ans, pre2[h-n-1]);
if(no(1, k)&&no(h, n+m+1)) ans=min(ans, pre1[k-1]+pre2[m]-pre2[h-n-1]);
if(no(k, -1)&&no(h, n+m+1)) ans=min(ans, pre1[n]-pre1[k-1]+pre2[m]-pre2[h-n-1]);
}
else if(g==k){
if(no(h, n+m+1)) ans=min(ans, pre2[m]-pre2[h-n-1]);
if(no(1, k)&&no(1, h)) ans=min(ans, pre1[k-1]+pre2[h-n-1]);
if(no(k, -1)&&no(1, h)) ans=min(ans, pre1[n]-pre1[k-1]+pre2[h-n-1]);
}
else if(g>=n+1){
if(no(g, h)) ans=pre2[h-n-1]-pre2[g-n-1];
if(no(1, g)&&no(h, n+m+1)){
if(no(k, -1)) ans=min(ans, pre2[g-n-1]+pre2[m]-pre2[h-n-1]+pre1[n]-pre1[k-1]);
if(no(1, k)) ans=min(ans, pre2[g-n-1]+pre2[m]-pre2[h-n-1]+pre1[k-1]);
}
}
else{
if(g<=k-1){
if(no(h, n+m+1)){
if(no(g, k)) ans=min(ans, pre1[k-1]-pre1[g-1]+pre2[m]-pre2[h-n-1]);
if(no(1, g)&&no(k, -1)) ans=min(ans, pre1[g-1]+pre1[n]-pre1[k-1]+pre2[m]-pre2[h-n-1]);
}
if(no(1, h)){
if(no(1, g)) ans=min(ans, pre1[g-1]+pre2[h-n-1]);
if(no(g, -1)) ans=min(ans, pre1[n]-pre1[g-1]+pre2[h-n-1]);
}
}
else{
if(no(h, n+m+1)){
if(no(k, g)) ans=min(ans, pre1[g-1]-pre1[k-1]+pre2[m]-pre2[h-n-1]);
if(no(g, -1)&&no(1, k)) ans=min(ans, pre1[k-1]+pre1[n]-pre1[g-1]+pre2[m]-pre2[h-n-1]);
}
if(no(1, h)){
if(no(1, g)) ans=min(ans, pre1[g-1]+pre2[h-n-1]);
if(no(g, -1)) ans=min(ans, pre1[n]-pre1[g-1]+pre2[h-n-1]);
}
}
}
}
if(ans==1e18) cout<<"impossible\n";
else cout<<ans<<"\n";
}
if(t=='c'){
int g;
cin>>g;
if(n1.count(g)) n1.erase(g);
else n1.insert(g);
}
if(t=='x'){
int g;
cin>>g;
if(n2.count(g)) n2.erase(g);
else n2.insert(g);
}
}
}
signed main(){
ios::sync_with_stdio(0);cin.tie(0);
solve();
return 0;
}
详细
answer.code:14:1: error: ‘set’ does not name a type 14 | set<int>n1, n2; | ^~~ answer.code: In function ‘bool no(long long int, long long int)’: answer.code:20:13: error: ‘n1’ was not declared in this scope; did you mean ‘t1’? 20 | if(*n1.lower_bound(t1)>=n+1) return 1; | ^~ | t1 answer.code:23:15: error: ‘swap’ was not declared in this scope 23 | if(t1>t2) swap(t1, t2); | ^~~~ answer.code:25:13: error: ‘n1’ was not declared in this scope; did you mean ‘t1’? 25 | if(*n1.lower_bound(t1)>=t2) return 1; | ^~ | t1 answer.code:32:13: error: ‘n2’ was not declared in this scope; did you mean ‘t2’? 32 | if(*n2.lower_bound(t1)>=t2) return 1; | ^~ | t2 answer.code: In function ‘void solve()’: answer.code:38:5: error: ‘cin’ was not declared in this scope 38 | cin>>n>>k>>m>>q; | ^~~ answer.code:1:1: note: ‘std::cin’ is defined in header ‘<iostream>’; did you forget to ‘#include <iostream>’? +++ |+#include <iostream> 1 | //#include<bits/stdc++.h> answer.code:45:5: error: ‘n1’ was not declared in this scope; did you mean ‘no’? 45 | n1.insert(1e18), n2.insert(1e18); | ^~ | no answer.code:45:22: error: ‘n2’ was not declared in this scope; did you mean ‘no’? 45 | n1.insert(1e18), n2.insert(1e18); | ^~ | no answer.code:53:17: error: ‘cout’ was not declared in this scope 53 | cout<<"0\n"; | ^~~~ answer.code:53:17: note: ‘std::cout’ is defined in header ‘<iostream>’; did you forget to ‘#include <iostream>’? answer.code:57:21: error: ‘swap’ was not declared in this scope 57 | if(g>h) swap(g, h); | ^~~~ answer.code:62:58: error: ‘min’ was not declared in this scope 62 | if(no(1, g)&&no(1, n+m+1)&&no(h, k)) ans=min(ans, pre1[g-1]+pre2[m]+pre1[k-1]-pre1[h-1]); | ^~~ answer.code:63:45: error: ‘min’ was not declared in this scope 63 | if(no(1, g)&&no(h, -1)) ans=min(ans, pre1[n]-pre1[h-1]+pre1[g-1]); | ^~~ answer.code:68:49: error: ‘min’ was not declared in this scope 68 | if(no(1, g)&&no(h, -1)) ans=min(ans, pre1[g-1]+pre1[n]-pre1[h-1]); | ^~~ answer.code:70:53: error: ‘min’ was not declared in this scope 70 | if(no(g, k)&&no(h, -1)) ans=min(ans, pre2[m]+pre1[k-1]-pre1[g-1]+pre1[n]-pre1[h-1]); | ^~~ answer.code:71:52: error: ‘min’ was not declared in this scope 71 | if(no(1, g)&&no(k, h)) ans=min(ans, pre2[m]+pre1[g-1]+pre1[h-1]-pre1[k-1]); | ^~~ answer.code:76:63: error: ‘min’ was not declared in this scope 76 | if(no(h, -1)&&no(k, g)&&no(1, n+m+1)) ans=min(ans, pre1[g-1]-pre1[k-1]+pre2[m]+pre1[n]-pre1[h-1]); | ^~~ answer.code:77:49: error: ‘min’ was not declared in this scope 77 | if(no(1, g)&&no(h, -1)) ans=min(ans, pre1[n]-pre1[h-1]+pre1[g-1]); | ^~~ answer.code:82:38: error: ‘min’ was not declared in this scope 82 | if(no(1, h)) ans=min(ans, pre2[h-n-1]); | ^~~ answer.code:83:52: error: ‘min’ was not declared in this scope 83 | if(no(1, k)&&no(h, n+m+1)) ans=min(ans, pre1[k-1]+pre2[m]-pre2[h-n-1]); | ^~~ answer.code:84:53: error: ‘min’ was not declared in this scope 84 | if(no(k, -1)&&no(h, n+m+1)) ans=min(ans, pre1[n]-pre1[k-1]+pre2[m]-pre2[h-n-1]); | ^~~ answer.code:87:42: error: ‘min’ was not declared in this scope 87 | if(no(h, n+m+1)) ans=min(ans, pre2[m]-pre2[h-n-1]); | ^~~ answer.code:88:48: error: ‘min’ was not declared in this scope 88 | if(no(1, k)&&no(1, h)) ans=min(ans, pre1[k-1]+pre2[h-n-1]); | ^~~ answer.code:89:49: error: ‘min’ was not declared in this scope 89 | if(no(k, -1)&&no(1, h)) ans=min(ans, pre1[n]-pre1[k-1]+pre2[h-n-1]); | ^~~ answer.code:94:43: error: ‘min’ was not declared in this scope 94 | if(no(k, -1)) ans=min(ans, pre2[g-n-1]+pre2[m]-pre2[h-n-1]+pre1[n]-pre1[k-1]); | ...