infoarena

infoarena - concursuri, probleme, evaluator, articole => Arhiva de probleme => Subiect creat de: Filip Cristian Buruiana din Iulie 09, 2006, 13:29:30



Titlul: 261 Bilete
Scris de: Filip Cristian Buruiana din Iulie 09, 2006, 13:29:30
Aici puteţi discuta despre problema Bilete (http://infoarena.ro/problema/bilete).


Titlul: Raspuns: 261 Bilete
Scris de: Rus Cristian din August 02, 2006, 19:34:38
ce va da pentru 4 2 respectiv 5 2?


Titlul: Raspuns: 261 Bilete
Scris de: Toma Radu din August 02, 2006, 20:27:33
pentru 4 2 mi-o dat :

Cod:
1112
1113
1114
1121
1122
1123
1124
1131
1132
1133
1134
1141
1142
1143
1144
1213
1221
1222
1223
1224
1231
1232
1233
1234
1241
1242
1243
1244
2122
2123
2124
2131
2132
2133
2134
2141
2142
2143
2144
2223
2231
2232
2233
2234
2241
2242
2243
2244
3132
3133
3134
3141
3142
3143
3144
3233
3241
3242
3243
3244
4142
4143
4144
4243

si pentru 5 2 :

Cod:
1112
1113
1114
1115
1121
1122
1123
1124
1125
1131
1132
1133
1134
1135
1141
1142
1143
1144
1145
1151
1152
1153
1154
1155
1213
1214
1221
1222
1223
1224
1225
1231
1232
1233
1234
1235
1241
1242
1243
1244
1245
1251
1252
1253
1254
1255
1321
1322
1323
1331
1332
1333
1341
1342
1343
1351
1352
1353
2122
2123
2124
2125
2131
2132
2133
2134
2135
2141
2142
2143
2144
2145
2151
2152
2153
2154
2155
2223
2224
2231
2232
2233
2234
2235
2241
2242
2243
2244
2245
2251
2252
2253
2254
2255
2331
2332
2333
2341
2342
2343
2351
2352
2353
3132
3133
3134
3135
3141
3142
3143
3144
3145
3151
3152
3153
3154
3155
3233
3234
3241
3242
3243
3244
3245
3251
3252
3253
3254
3255
3341
3342
3343
3351
3352
3353
4142
4143
4144
4145
4151
4152
4153
4154
4155
4243
4244
4251
4252
4253
4254
4255
4351
4352
4353
5152
5153
5154
5155
5253
5254


Titlul: Raspuns: 261 Bilete
Scris de: Rus Cristian din August 03, 2006, 08:45:26
nu sunt cam putine?


Titlul: Raspuns: 261 Bilete
Scris de: Bondane Cosmin din August 03, 2006, 09:33:38
dc sa fie mai multe ... atatea is ... incearca teste mici si dupa care mai mari . good luck  :thumbup:


Titlul: Raspuns: 261 Bilete
Scris de: Rus Cristian din August 03, 2006, 22:22:43
in exemplul din problema...biletele sunt simetrice doar fata de verticala...nu si fata de orizontala


Titlul: Re: 261 Bilete
Scris de: Sima Mihai Cotizo -vechi din August 03, 2006, 23:08:48
nu am rezolvat-o inca, dar in problema mai zice ca biletul poate fi bagat cu un singur capat, celalalt fiind in cotor... deci nu trebuie si simetrice fata de orizontala... doar pe verticala


Titlul: Raspuns: 261 Bilete
Scris de: Rus Cristian din August 29, 2006, 20:07:15
am reusit sa rezolv problema, de 50 de pct... :-'...dar cred ca gresesc la testele in care se fac 3 gauri, ce va da pentru 4 3 respectiv 5 3?...adica, cate solutii? eu pentru 4 3 am 258 iar pentru 5 3 am 1215...


Titlul: Raspuns: 261 Bilete
Scris de: Andrei Grigorean din August 29, 2006, 23:20:29
pentru 4 3 - 280, iar pentru 5 3 - 1180


Titlul: Răspuns: 261 Bilete
Scris de: Taloi Bogdan Cristian din Noiembrie 14, 2007, 20:10:25
cate va ies la n=6 k=3
mie 2335


Titlul: Răspuns: 261 Bilete
Scris de: Adrian Diaconu din Noiembrie 14, 2007, 20:48:31
Cred ca 3570 e corect.


Titlul: Răspuns: 261 Bilete
Scris de: UAIC.VlasCatalin din Noiembrie 01, 2011, 22:33:58
Am rezolvat problema, adica generez corect solutia doar ca nu intru in timp, voi cum aflati daca o pozitie este simetrica cu una generata anterior? :-k


Titlul: Răspuns: 261 Bilete
Scris de: Barbu Dorel din Septembrie 03, 2013, 15:55:03
Ati putea da un mic indiciu despre cum se evita repetitiile? :D .


Titlul: Răspuns: 261 Bilete
Scris de: Alexandru Valeanu din Septembrie 03, 2013, 18:10:38
E chiar mai mult decat un hint: http://probleme.francu.com/arhiva/R0015/enunt.html


Titlul: Răspuns: 261 Bilete
Scris de: Barbu Dorel din Septembrie 03, 2013, 18:44:10
Ahaa. Merci frumos!  :D


Titlul: Răspuns: 261 Bilete
Scris de: Margeloiu Andrei din Octombrie 07, 2014, 22:06:41
Am acelasi fisier de iesire, dar nu primesc puncte. Ma poti ajuta ?

# include <fstream>
# include <algorithm>
using namespace std;
ifstream f("bilete.in");
ofstream g("bilete.out");
int i,n,K,nr[10],x,y,patrate,ok,NR,NR2;
int ap[1000000],st[5];
void back (int k)
{
    int i;
    if (k==K+1)
    {
        NR=0; NR2=0;
        //numarul
        for (i=1; i<=K; ++i)
        {
            x=(st-1)/n+1; y=(st-1)%n+1;
            NR=NR*10+x; NR=NR*10+y;
            nr=x*10+(n-y+1);
        }
        //oglinditul
        sort (nr+1,nr+K+1);
        for (i=1; i<=K; ++i)
            NR2=NR2*100+nr;

        ap[min(NR,NR2)]=1;
    }
    else
    {
        for (i=st[k-1]+1; i<=patrate+k-K; ++i)
        {
            st[k]=i;
            back(k+1);
        }
    }
}
int main ()
{
    f>>n>>K;
    patrate=n*n;
    back(1);
    for (i=1; i<=1000000; ++i)
        if (ap) g<<i<<"\n";
    return 0;
}