rt,dev上可以正常运行,到洛谷上就编译错误。
#include<bits/stdc++.h>
#include<string>
using namespace std;
priority_queue<int> q;
int k,m,n;
int u,v;
int j1,j2;
int a[300005];//总集合
int b[300005];//辅助集合
int c[300005];//拼接数字
string str;
int main(){
cin >> k >> m;
a[0] = 1;
for(int i=1;i<=k;i++){
u = a[j1]*2+1;
v = a[j2]*4+5;
if(u<v){
a[i] = u;
j1+=1;
}
else if(u>v){
a[i] = v;
j2+=1;
}
else if(u==v){
a[i] = u;
j1+=1;
j2+=1;
}
}
sort(a,a+k);
for(int i=0;i<k;i++){
str += to_string(a[i]);
}
int l = str.length();
for(int i=0;i<l;i++){
c[i] = str[i]-'0';
cout << c[i];
}
cout << "\n";
while(m){
if(n>l) n=0;
if(c[n]<c[n+1]){
// cout << "要删的数:" << c[n] << endl;
c[n] = -1;
m-=1;
}
n+=1;
}
for(int i=0;i<l;i++){
if(c[i]!=-1) cout << c[i];
}
return 0;
}
/tmp/compiler_gv8yc_k2/src: 在函数‘int main()’中:
/tmp/compiler_gv8yc_k2/src:22:11: 错误:‘int [300005][double(double) noexcept {aka double(double)}]’用作数组下标类型无效
22 | u = a[j1]*2+1;
| ^
/tmp/compiler_gv8yc_k2/src:26:6: 警告:在算术表达式中使用了函数指针 [-Wpointer-arith]
26 | j1+=1;
| ~~^~~
/tmp/compiler_gv8yc_k2/src:26:6: 错误:向只读位置‘j1’赋值
/tmp/compiler_gv8yc_k2/src:34:6: 警告:在算术表达式中使用了函数指针 [-Wpointer-arith]
34 | j1+=1;
| ~~^~~
/tmp/compiler_gv8yc_k2/src:34:6: 错误:向只读位置‘j1’赋值
这是编译信息,我又触犯了什么天条了?