Я получаю ошибку времени выполнения, в чем причина этого? При удалении if (Px [size-1] .ele> a) ошибка исчезает! Я пробовал использовать только тогда, когда я равен нулю, и все же я получил ошибку!Что не так с этим кодом? Я получаю ошибку сегментации
#include <iostream>
using namespace std;
#define f(i,n) for(i=0;i<n;i++)
#define f1(i,n) for(i=1;i<=n;i++)
#define ll long long
#define ld long double
#define MOD 1000000007
typedef struct{
int ele;
int pos;
int sum;
} vj;
int main()
{
int n,size,sum,i,a;
vj Px[1000000];
cin>>n;
size=sum=0;
f(i,n){
cin>>a;
sum+=a;
while(size){
if(Px[size-1].ele>a)
break;
size--;
}
Px[size].ele=a;
Px[size].pos=i+1;
Px[size].sum=sum;
size++;
}
//sum=P[0].ele*P[0].pos-P[0].sum;
//f(i,size-1)
// sum+=(P[i+1].ele*(P[i+1].pos-P[i].pos))-(P[i+1].sum-P[i].sum);
//cout<<size<<endl;
return 0;
}
Что вам удалось сделать через программу отладчика? – Angew
Почему вы используете эти уродливые маскирующие маски? – Deduplicator
12M + в локальных переменных? Не удивительно, что вещи ломаются. – Deduplicator