社区讨论
神秘问题
学术版参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @m3pmfqhx
- 此快照首次捕获于
- 2024/11/20 16:28 去年
- 此快照最后确认于
- 2025/11/04 14:19 4 个月前
我现在有两份T539822 202411C K/D/A的代码,提交都是对的
唯一的区别是 的声明位置
然后我在本地Dev-C++ 5.11 不开 O2
第一份代码输出 ,第二份输出
然后我把第一份下面注释去掉(一个看起来根本无意义的循环),发现输出了
然后注释加回去,开O2跑,发现输出了
然后我又把第一份代码弄到小熊猫里不做其他修改,发现输出了
所以到底是什么原因使第一份代码本地输出 的 ?
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e6+7;
struct node{
int k,d,b,val,id;
node(){}
node(int K,int D,int B,int I){
k=K;d=D;b=B;id=I;
if(k-d>=10)val = k*(k-d)+b;
else if(k>=d) val = (k-d+1)*3+b;
else val = b*2;
}
bool operator < (const node &x)const{
return val > x.val;
}
}a[N];
signed main(){
// ios_base::sync_with_stdio(false);
// cin.tie(0);cout.tie(0);
int n;
cin >> n;
for(int i=1;i<=n;i++){
int x,y,z;
scanf("%d/%d/%d",&x,&y,&z);
a[i] = node(x,y,z,i);
}
sort(a+1,a+1+n);
// for(int i=1;i<=n;i++)
// a[i].id=a[i].id;
cout << a[1].id;
return 0;
}
CPP#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e6+7;
struct node{
int k,d,b,val,id;
node(){}
node(int K,int D,int B,int I){
k=K;d=D;b=B;id=I;
if(k-d>=10)val = k*(k-d)+b;
else if(k>=d) val = (k-d+1)*3+b;
else val = b*2;
}
bool operator < (const node &x)const{
return val > x.val;
}
}a[N];
int n;
signed main(){
// ios_base::sync_with_stdio(false);
// cin.tie(0);cout.tie(0);
cin >> n;
for(int i=1;i<=n;i++){
int x,y,z;
scanf("%d/%d/%d",&x,&y,&z);
a[i] = node(x,y,z,i);
}
sort(a+1,a+1+n);
// for(int i=1;i<=n;i++)
// a[i].id=a[i].id;
cout << a[1].id;
return 0;
}
CPP样例:
2
10/1/9
10/0/1
回复
共 3 条回复,欢迎继续交流。
正在加载回复...