Informatică, întrebare adresată de LadyofMeow, 8 ani în urmă

Buna. La problema 401 Pachete_Multe primesc caught fatal signal 11 la unul din teste. Acesta este codul meu.
#include
using namespace std;
ifstream f("pachete_multe.in");
ofstream g("pachete_multe.out");
struct pachete
{
long long num, pos;
}a[100001];
int main()
{
long long n,i,ct=0,h=1,v[100001];
f>>n;
long long lib=n+1;
a[lib].num=0;
for(i=1;i<=n;i++)
f>>a[i].num, a[a[i].num].pos=i;
i=1;
while(i<=n)
{
if(i!=a[i].num)
{ if(a[i].num!=0)
{
v[h++]=i;
v[h++]=lib;
ct++;
}
v[h++]=a[i].pos;
v[h++]=i;
ct++;
a[lib].num=a[i].num;
a[a[i].num].pos=lib;
a[i].num=i;
lib=a[i].pos;
a[lib].num=0;
}
i++;
}
g< for(i=1;i g<
}
Cerinţa
Într-un depozit foarte mare există un raft cu n+1 spații de depozitare, numerotate de la 1 la n+1. Primele n spatii de depozitare sunt ocupate cu n pachete numerotate cu valori între 1 și n, iar spațiul de depozitare n+1 este gol.

Administratorul depozitului decide mutarea pachetelor, astfel încât pentru orice i, pachetul numerotat cu i să se afle în spațiul de depozitare i. Pentru aceasta se va folosi spațiul de depozitare suplimentar, n+1, singura manevră validă fiind mutarea unui pachet dintr-un spațiu de depozitare în altul, cu condiția ca acesta să fie gol.

Determinați o succesiune de manevre prin care fiecare pachet să fie în spațiul corect.


LadyofMeow: #include
using namespace std;
ifstream f("pachete_multe.in");
ofstream g("pachete_multe.out");
struct pachete
{
long long num, pos;
}a[100001];
int main()
{
long long n,i,ct=0,h=1,v[100001];
f>>n;
long long lib=n+1;
a[lib].num=0;
for(i=1;i<=n;i++)
f>>a[i].num, a[a[i].num].pos=i;
i=1;
while(i<=n)
{
if(i!=a[i].num)
{ if(a[i].num!=0)
{
v[h++]=i;
v[h++]=lib;
ct++;
}
v[h++]=a[i].pos;
v[h++]=i;
ct++;
a[lib].num=a[i].num;
a[a[i].num].pos=lib;
a[i].num=i;
lib=a[i].pos;
a[lib].num=0;
}
i++;
}
g< for(i=1;i g<
}

Răspunsuri la întrebare

Răspuns de nellies1
0
Nu se intelege cea ce scrie :/

LadyofMeow: imediat
LadyofMeow: fac un fisier
nellies1: okk
LadyofMeow: fir-ar nu ma pricep sa-l uploadez
nellies1: scrie din nou intrebarea
nellies1: si poate oti raspunde altcineva
nellies1: ❤️❤️❤️❤️
LadyofMeow: ok merci
nellies1: cpll
Alte întrebări interesante