Pentru a putea rula codul, te rugăm să te autentifici.

Autentifică-te
main.cpp

ID #635 · Advent Calendar 2022 · Combinatorică

Problema Parola

Dificilă · 8

Memorie: 64 MB / 8 MB

Timp: 0.3 secunde

I/O: Consolă

Iulian este foarte speriat de hoți și îl terifiază gândul că peste câteva zile, de Crăciun, Moș Crăciun va intra prin efracție în casa lui. Din acest motiv, acesta și-a instalat pe ușă un sistem care funcționează cu un cod PIN. Fricos de fel, se întreabă cât de sigur este sistemul de securitate.

Codul este format din n numere naturale care trebuie să fie distincte două câte două. Primul număr poate fi orice număr de la 1 la a1, al doilea număr poate fi orice de la 1 la a2 și așa mai departe până la al n-lea număr (numerele a1, a2, …, an nu sunt neapărat în ordine crescătoare).

Cerință

Se dau n și cele n numere a1, a2, …, an. Să se determine câte coduri există care să respecte condițiile impuse de codul PIN, pentru a-l ajuta pe Iulian.

Date de intrare

Programul citește de la tastatură, de pe prima linie, numărul natural n, iar de pe următoarea linie, cele n numere naturale separate prin câte un spațiu.

Date de ieșire

Programul afișează pe ecran un singur număr natural reprezentând numărul de coduri care se pot forma în condițiile date. Deoarece acest număr poate fi foarte mare, se cere afișarea răspunsului modulo 1.000.000.007.

Restricții și precizări

  • 1 ≤ n ≤ 100.000
  • 1 ≤ cele n numere ≤ 1.000.000.000

Exemple

Se citește

3
1 2 3

Se afișează

1

Explicație

Pentru primul exemplu: singurul cod valid este (1, 2, 3), deoarece primul număr poate fi doar 1, al doilea poate fi doar 2 (pentru că trebuie să difere de primul număr), iar al treilea număr poate fi doar 3 (ca să difere de celelalte două numere).

Pentru al doilea exemplu: singurele două coduri care respectă condițiile date sunt (1, 3, 2) și (2, 3, 1).

Se citește

3
2 3 2

Se afișează

2

Explicație

Pentru primul exemplu: singurul cod valid este (1, 2, 3), deoarece primul număr poate fi doar 1, al doilea poate fi doar 2 (pentru că trebuie să difere de primul număr), iar al treilea număr poate fi doar 3 (ca să difere de celelalte două numere).

Pentru al doilea exemplu: singurele două coduri care respectă condițiile date sunt (1, 3, 2) și (2, 3, 1).

ID #635 Autor Dominic Satnoianu
Set Advent Calendar 2022 Adăugată de Alexis Alexis lexington
Capitol Clasa a X-a/Probleme avansate/Combinatorică
Licență

Problema aceasta a fost publicată sub licența CC BY-SA 4.0. Indicațiile sunt publicate sub licența InfoAs Standard License, iar rezolvarea sub licența InfoAs Standard License. Licența InfoAs Standard License nu permite copierea sau modificarea fără acordul scris al autorilor. Platforma și toate funcționalitățile ei rămân în continuare proprietatea intelectuală Aspire Education Labs SRL. © 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate.

Indicații oficiale de rezolvare a problemei

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

#include <bits/stdc++.h>

    using namespace std;

    int main() {
        int n;
        cin >> n;
        cout << n * n << endl;
        return 0;
    }

Lorem:

Subtitle

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

Lorem:

Pentru a vizualiza indicațiile problemei, te rugăm să te autentifici.

Indicații oficiale de rezolvare a problemei

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

#include <bits/stdc++.h>

    using namespace std;

    int main() {
        int n;
        cin >> n;
        cout << n * n << endl;
        return 0;
    }

Lorem:

Subtitle

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Aperiam rem vel architecto dolore, nulla laboriosam atque laudantium sint commodi in molestiae excepturi dicta inventore eum, quos porro illum ratione ea! Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a? Nisi nostrum quod delectus corporis?

Lorem ipsum dolor sit amet consectetur adipisicing elit Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum possimus dolores, molestiae sunt repellendus voluptate qui asperiores maiores cumque, quidem nihil facere distinctio! Odit, a?

Lorem:

Pentru a vizualiza rezolvarea problemei, te rugăm să te autentifici.

Soluții trimise la problema Parola

Soluții trimise 9
Soluții de 100 de puncte 6
Soluții de luna aceasta La fel de multe ca luna trecută. 0 +0
Rata de succes Rata dintre numărul de persoane care au obținut 100 de puncte și numărul total de persoane care au încercat problema. 71.43%

Autentifică-te pentru a vedea soluțiile tale.

Autentifică-te
  • Toate soluțiile tale le găsești aici. Găsești toate detaliile evaluării mai târziu, precum punctaje și sfaturi primite.
  • Poți să editezi soluțiile tale și să le retrimiți. Reia mai târziu de unde ai rămas, pentru că poți modifica soluții și să le reevaluezi.
  • Profesorii pot să vadă soluțiile tale și să îți trimită sugestii. Astfel, îți este mai ușor să înveți informatica, primind sfaturi bune chiar de la școală.

Ultimele soluții trimise 9

10000 10000 10000 10000000 10000
10000000 10 10 1000000 1000
1000 10 1000000 100000 100
1000 100 1000 1000000 10
10 1000000 100000 100000 100
1000 1000 1000 10000000 10000000
10000000 10000000 1000000 100000 1000000
10000000 1000 1000000 10000 1000000
10000 100000 1000 10000000 10000
1000 1000000 1000 100 1000000
Tabelul se actualizează în timp real. ?? / ??

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te