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

Autentifică-te
main.cpp

ID #804 · InfoMoisil 2025, clasa a VI-a · Probleme diverse

Problema Joker

Dificilă · 8

Memorie: 64 MB / 8 MB

Timp: 0.1 secunde

I/O: Fișiere

Alice a primit de Crăciun un joc prin intermediul căruia să exerseze noțiuni elementare de matematică, parcurse în anul școlar anterior. Jocul conține n cartonașe pe care sunt înscripționate numere naturale distincte.

Un cartonaș primește rolul de joker dacă are următoarele proprietăți: valorile cartonașelor de imediat la stânga lui (cel puțin unul) împreună cu valoarea sa formează un șir strict crescător și valoarea sa împreună cu valorile cartonașelor de imediat la dreapta lui (cel puțin unul) formează un șir strict descrescător. Toate aceste elemente constituie o secvență joker. Astfel, dacă x1, x2, …, xn sunt valorile înscripționate pe cartonașe și xi < xi+1 < ... < xk-1 < xk > xk+1 > ... > xj (1≤i<k<j≤n), atunci xi, xi+1, …, xk-1, xk, xk+1, …, xj se va numi secvență joker, iar xk va fi valoarea de pe cartonașul de tip joker. Două secvențe joker au maxim un element comun. Spre exemplu, şirul cartonașelor cu valorile 23 44 76 99 100 nu conţine nicio secvenţă joker, iar cel format cu valorile 2 5 8 3 1 4 7 0 conţine 2 secvenţe joker: 2 5 8 3 1 şi 1 4 7 0, cu jokerii 8, respectiv 7.

Jocul introduce o nouă noțiune și anume cifra de control a unui număr. Aceasta se obține efectuând suma cifrelor sale, apoi suma cifrelor acestei sume, până când suma obținută este un număr format dintr-o singură cifră. Această ultimă cifră poartă numele de cifră de control.

Cerință

Mama așează cele n cartonașe într-o anumită ordine și îi solicită lui Alice să determine:

  1. Câte secvențe de tip joker există
  2. Care sunt cele mai mari două valori distincte care au cifra de control pară și care se află pe cartonașe joker
  3. Care sunt cartonașele care rămân dacă: se elimină toate cartonașele de tip joker, după care pe șirul de cartonașe nou obținut se procedează în aceeași manieră, procesul repetându-se până când nu mai rămâne niciun cartonaș joker.

Date de intrare

Fișierul de intrare joker.in conține pe prima linie un număr natural C, care poate fi 1, 2 sau 3. A doua linie conține numărul natural N ce reprezintă numărul de cartonașe, iar pe a treia linie se află N numere naturale distincte, separate prin câte un spațiu, reprezentând numerele înscripționate pe cartonașe, așa cum le-a așezat mama lui Alice.

Date de ieșire

Dacă valoarea lui C este 1, atunci se va rezolva numai punctul 1 din cerință. În acest caz, fișierul de ieșire joker.out va conține pe prima linie un singur număr natural reprezentând numărul de secvențe joker.

Dacă valoarea lui C este 2, atunci se va rezolva numai punctul 2 din cerință. În acest caz, fișierul de ieșire joker.out va conține pe prima linie două numere naturale distincte, în ordine crescătoare, separate prin spațiu, reprezentând cele mai mari două valori care se găsesc pe cartonașe de tip joker și care au cifra de control pară sau valoarea -1 dacă nu există două astfel de valori.

Dacă valoarea lui C este 3, atunci se va rezolva numai punctul 3 din cerință. În acest caz, fișierul de ieșire joker.out va conține pe prima linie, separate printr-un spațiu, valorile de pe cartonașele care rămân în urma procesului de eliminări succesive, așa cum este acesta descris în enunț.

Restricții și precizări

  • C poate fi 1, 2 sau 3
  • Pentru C=1 și C=2: 1 ≤ N ≤ 106, iar numerele de pe cartonașe vor fi numere naturale distincte < 109
  • Pentru C=3: 1 ≤ N ≤ 100, iar numerele de pe cartonașe vor fi numere naturale distincte < 109
  • Rezolvarea cerinței 1 garantează 30 de puncte, a cerinței 230 de puncte, respectiv a cerinței 340 de puncte

Exemple

joker.in

1
10
67  334  5001  169  301  539  724  478  358  962

joker.out

2

Explicație

Există două secvențe joker: 67 334 5001 169, respectiv 169 301 539 724 478 358.

joker.in

2
10
67  301  50  16  334  53  3503  478  724  96

joker.out

724 3503

Explicație

Există patru cartonașe de tip joker: Cele cu valorile 301, 334, 3503 și 724. Cifrele de control ale acestora sunt 4, 1, 2 și 4. Cele mai mari două valori care sunt joker și au și cifra de control pară sunt 724 și 3503.

joker.in

2
10
67  302  50  16  334  53  3502  478  723  96

joker.out

-1

Explicație

Există patru cartonașe de tip joker: Cele cu valorile 302, 334, 3502 și 723. Cifrele de control ale acestora sunt 5, 1, 1 și 3. Cum nu există niciun cartonaș joker a cărui valoare să aibă cifra de control pară, în fișierul de ieșire se va afișa valoarea -1.

joker.in

3
10
6  302  70  16  334  53  3502  478  723  93

joker.out

6 16 53 93

Explicație

După prima etapă de eliminări șirul valorilor de pe cartonașe devine: 6 70 16 53 478 93. După a doua etapă de eliminări devine: 6 16 53 93, moment în care procesul se încheie deoarece nu mai există niciun cartonaș joker.

ID #804 Autor Trandabur Alexandra
Set InfoMoisil 2025, clasa a VI-a Adăugată de Alexis Alexis lexington
Capitol Clasa a IX-a/Probleme avansate/Probleme diverse
Licență

© 2021 – 2025 Aspire Education Labs SRL. Toate drepturile rezervate. Așa cum este specificat și în termeni și condiții, conținutul acestei pagini este protejat de legea drepturilor de autor și este interzisă copierea sau modificarea acestuia fără acordul scris al autorilor. Încălcarea drepturilor de autor este o infracțiune și se pedepsește conform legii.

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 Joker

Soluții trimise 0
Soluții de 100 de puncte 0
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. N/A

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 0

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

Comentarii 0

Autentifică-te pentru a putea comenta.

Autentifică-te