228152026-01-15 19:45:28FintaTihamerSíkság (55)cpp17Hibás válasz 0/552ms1080 KiB
#include <iostream>
#include <fstream>
using namespace std;
int a[2][28];
int main()
{   int n;
    cin>>n;
    int d[n+1],g[n+1];
    g[0]=0;
    g[1]=0;
    g[2]=1;
    d[0]=0;
    d[1]=1;
    d[2]=2;
    for(int i=3; i<=n; i++){
        d[i]=d[i-1]+d[i-2]+2*g[i-1];
        /* magyarul: a jelenlegi lepes leirhato ugy hogy feltetelemzem hogy az elso i-1 es i-2 le van fedve.
        Ha az elso i-1 van lefedve akkor csak 1 helyem maradt a 'vegeig', ezert csak egy allo I-t tudok rakni.
        Ha az elso i-2 van lefedva akkor 2 helyem van amit 2 fekvo i-vel tudok betolteni, alloval azert nem mert az allo I-kel az i-1 dolgozik.
        A g[i-1] pedig az feltetelezi hogy az elozo i-1-ben van egy lyuk ahova be tud ileszteni egy L alaku teglat, azert kell szorozni mert a vizszintes tengelyen szimmetrikus.*/
        g[i]=g[i-1]+d[i-2];
        /*magyarul: a i-1 feltetelezi hogy az elozo lepesnel egy L alaku teglat raktunk es azt be tudja fillelni.
        az i-2-nel azt feltetelezi hogy az utolso ket lepesben nem raktunk egy L alakut sem ezert rakhatunk egyet ezzel egy lyukat csinalva*/
    }
    cout<<d[n];
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/55
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/01ms508 KiB
3Hibás válasz0/21ms316 KiB
4Hibás válasz0/21ms316 KiB
5Hibás válasz0/21ms316 KiB
6Hibás válasz0/21ms316 KiB
7Hibás válasz0/31ms316 KiB
8Hibás válasz0/21ms316 KiB
9Hibás válasz0/31ms316 KiB
10Hibás válasz0/31ms316 KiB
11Hibás válasz0/31ms508 KiB
12Hibás válasz0/31ms316 KiB
13Hibás válasz0/32ms1076 KiB
14Hibás válasz0/32ms1076 KiB
15Hibás válasz0/32ms1076 KiB
16Hibás válasz0/32ms1076 KiB
17Hibás válasz0/32ms1076 KiB
18Hibás válasz0/32ms1076 KiB
19Hibás válasz0/32ms1076 KiB
20Hibás válasz0/32ms1080 KiB
21Hibás válasz0/31ms564 KiB
22Hibás válasz0/32ms820 KiB