infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Bogdan-Cristian Tataroiu din Ianuarie 11, 2009, 13:52:47



Titlul: 789 Marmote
Scris de: Bogdan-Cristian Tataroiu din Ianuarie 11, 2009, 13:52:47
Aici puteti discuta despre problema Marmote (http://infoarena.ro/problema/marmote).


Titlul: Răspuns: 789 Marmote
Scris de: Cosmin-Mihai Tutunaru din Ianuarie 11, 2009, 16:18:42
Sper sa nu fi inteles eu gresit problema.....insa nu vad cum marmotele 1 si 3 isi pot face o vizuina.
Marmota 1 cred ca ar avea nevoie si de pozitia 0,6....care teoretic nu ar trebui sa existe, iar Marmota 3, are punctul pe linia coloana 1.....deci jumatatea stanga din vizuina nu se poate construi.....
Care este logica defapt?


Titlul: Răspuns: 789 Marmote
Scris de: Glodeanu Ioan Daniel din Ianuarie 11, 2009, 21:13:45
In timpul concursului:

Gavrila Vlad: Daca distanta de la pozitia aleasa de marmota pana la una din laturile livezii este mai mica decat L (adica marmota nu poate construi vizuina de dimensiuni maxime), marmota se va stabili in livada?
Andrei Grigorean: DA


Titlul: Răspuns: 789 Marmote
Scris de: Cosmin-Mihai Tutunaru din Ianuarie 12, 2009, 21:36:58
Scz....nu m-am gandit sa ma uit la discutiile din timpul concursului.
Cred totusi ca ar trebui modificat in enuntul problemei acest lucru....
Acum am si eu o mica problema...Folosesc urmatoarea functie de verificare:
Cod:
int verifica(char mat[nmax][mmax], int n, int m, int x, int y, int l)
{
//verificam pt toate cele 4 pozitii maxime (colturile rombului) daca se afla in matrice si daca punctul este ocupat
//inseamna ca atunci marmota nu se poate stabili
if(x+l<=n && mat[x+l][y]) return 0;
if(x-l>=1 && mat[x-l][y]) return 0;
if(y+l<=m && mat[x][y+l]) return 0;
if(y-l>=1 && mat[x][y-l]) return 0;
return 1; //cele 4 puncte sunt libere, deci marmota se poate stabili
}
Insa se pare ca nu functioneaza tocmai bine......si eu nu vad de ce:(


Titlul: Răspuns: 789 Marmote
Scris de: Codrin LACHE din Martie 12, 2009, 18:14:16
Cod:
#include<fstream>
#include<math.h>

using namespace std;

int main()
{
 ifstream fin("marmote.in");
 ofstream fout("marmote.out");
 int a[1001][2];
 int n,m,k,l,i,j,ii,jj,aux=1,flag,contor=1;
 fin>>n>>m>>k>>l;
 fout<<1<<"\n";
 fin>>ii>>jj;
 a[aux][0]=ii;
 a[aux][1]=jj;
 fin.close();
 for(i=1;i<=k-1;i++)
{
fin>>ii>>jj;
contor++;
flag=1;
for(j=1;j<=aux;j++)
if(!(abs(a[j][0]-ii)+abs(a[j][1]-jj)>2*l))
flag=0;
if(flag)
{
a[++aux][0]=ii;
a[aux][1]=jj;
fout<<contor<<"\n";
}
}
 fout.close();
return 0;
}

nu pot sa inteleg ce crapa...am facut pe 100 de exemple si merge perfect  ](*,) ](*,) :fighting: :fighting:


Titlul: Răspuns: 789 Marmote
Scris de: Andrici Cezar din Mai 10, 2009, 08:18:06
ce inseamna wall time limit exeted ? :-s

[Later Edit] Am scapat de aia, am pe tesul 9 incorect.... poate sa imi zica si mie acel caz? :fighting:
[Later Later Edit] Am scos 100 :winner1: aveam o greseala in loc de m pusesem n  :oops:


Titlul: Răspuns: 789 Marmote
Scris de: Mariu Laurentiu din Ianuarie 05, 2012, 18:22:08
nu ma lasa sa trimit sursa ](*,)
A mai intalnit cineva problema asta?


Titlul: Răspuns: 789 Marmote
Scris de: Alpaca Gedit din Februarie 24, 2014, 19:23:06
Se poate uita cineva pe sursa mea si sa imi trimita un mesaj cu ce am gresit sau cum o pot repara?
Multumesc  :banana: :banana: :banana: :banana: :banana:


Titlul: Răspuns: 789 Marmote
Scris de: Eftime Andrei Horatiu din Februarie 25, 2014, 15:59:10
Cu placere, Gedit!


Titlul: Răspuns: 789 Marmote
Scris de: Dan Deac din Martie 30, 2017, 15:24:33
Codrin LACHE , #include <iostream>  :fighting: