Afişează mesaje
Pagini: [1]
1  infoarena - concursuri, probleme, evaluator, articole / Concursuri / Răspuns: OJI 2012 : Martie 03, 2012, 15:12:27
Imi spune si mie ce am gresit la sursa? Sau...cum puteam sa fiu in timpul de executie?
<Clasa a IX-a>
Cod:
#include<iostream>
#include<fstream>

using namespace std; // p=numar iarba uscata sub un elicopter q=numar total iarba sub un elicopter :@

ifstream f;
ofstream g;

int m,n,k,t[101][101],c[41][41],i,j,h=1,N1=0,N2=0,p=0,sw[101][101],y=0,q=0;
int u[41];
float jum,pq;

int main()
{
f.open("elicop.in");
g.open("elicop.out");

f >> m >> n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
f >> t[i][j];

f >> k;
for(i=1;i<=k;i++)
for(j=1;j<=5;j++)
f >> c[i][j];

jum=1/2;

for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
sw[i][j]=0;

for(i=1;i<=k;i++)
{
y=0;
if(c[i][5]==1)
{
if(c[i][2]<c[i][4])
while(sw[c[i][3]][c[i][4]]==0)
{
for(j=c[i][2]+y;j<=c[i][4];j++)
{
if(t[c[i][1]+y][j]==0)
p++;
sw[c[i][1]+y][j]=1;
q++;
}
y++;
}
if(c[i][2]>c[i][4])
while(sw[c[i][3]][c[i][4]]==0)
{
for(j=c[i][2]-y;j>=c[i][4];j--)
{
if(t[c[i][1]-y][j]==0)
p++;
sw[c[i][1]-y][j]=1;
q++;
}
y++;
}
}
if(c[i][5]==-1)
{
if(c[i][1]<c[i][3])
while(sw[c[i][3]][c[i][4]]==0)
{
for(j=c[i][1]+y;j<=c[i][3];j++)
{
if(t[j][c[i][2]+y]==0)
p++;
sw[j][c[i][2]+y]=1;
q++;
}
y++;
}
if(c[i][1]>c[i][3])
while(sw[c[i][3]][c[i][4]]==0)
{
for(j=c[i][1]-y;j>=c[i][3];j--)
{
if(t[j][c[i][1]-y]==0)
p++;
sw[j][c[i][1]-y]=1;
q++;
}
y--;
}
}
pq=p/q;
if(p==0)
N1++;
if(pq>jum)
{
N2++;
u[h]=i;
h++;
}
}

g << N1 << '\n' << N2 << " ";
for(j=1;j<=N2;j++)
g << u[j] << " ";

f.close();
g.close();

return 0;
}
Cea de mai sus este Problema cu Elicopterele ( I ).

Cod:
#include<iostream>
#include<fstream>

using namespace std;

ifstream f;
ofstream g;

int n,p,c[361],cl,rtr,i,j,Euro,oc[361],h=1,sw[361],ultim;
float x,r[361];

void citire()
{
f >> n >> p;
for(i=1;i<=n;i++)
f >> c[i];
}

float inv(int n)
{
x=1/n;
}

void afisare()
{
g << Euro << '\n';
for(h=1;h<=p;h++)
g << oc[h] << " ";
}

int main()
{
f.open("roata.in");
g.open("roata.out");

citire();

cl=n;

for(i=1;i<=n;i++)
rtr+=c[i];
Euro=rtr;

for(j=1;j<=n;j++)
sw[j]=0;

while(rtr>0)
{
if(cl>=1)
{
cl--;
for(j=1;j<=n;j++)
if(sw[j]==0)
{
sw[j]=1;
j=n;
}
}
for(j=1;j<=n;j++)
{
if(r[j]==1)
{
r[j]=0;
rtr--;
c[j]--;
ultim=j;
}
if(c[j]==0)
{
sw[j]=0;
cl++;
oc[h]=j;
h++;
}
}
for(i=1;i<=n;i++)
if(sw[i]==1)
r[i]+=inv(n);
}

afisare();

f.close();
g.close();

return 0;
}
Cea de mai sus este Problema cu Roata ( II ).
2  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 000 A+B : Februarie 09, 2012, 22:43:18
Aha...deci...nu este voie sa folosim acel ".txt" la sfarsit. Multumesc.
3  infoarena - concursuri, probleme, evaluator, articole / Arhiva de probleme / Răspuns: 000 A+B : Februarie 09, 2012, 22:31:38
Am o problema...de fapt nu am...am luat 100 de puncte si o data 0 puncte, iar eu sincer nu inteleg diferenta dintre cele doua solutii.

Acesta este programul corect :
Cod:
#include<fstream>

using namespace std;

int a,b;

ifstream f;
ofstream g;

int main()
{

f.open("adunare.in");
f >> a >> b;
g.open("adunare.out");
g << a+b << endl;

f.close();
g.close();

return 0;
}

Iar, acesta este cel gresit :

Cod:
#include<iostream>
#include<fstream>

using namespace std;

int a,b,S;

ifstream in;
ofstream out;

int main()
{
in.open("adunare.in.txt");

in >> a;
in >> b;

S=a+b;

out.open("adunare.out.txt");
out << S;

return 0;
}

Singura diferenta este cea ca in cel gresit am adaugat fisierul iostream.h. Nimic altceva? De ce reprezinta o problema?
Pagini: [1]
Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines