#3196
Gigel și-a făcut un nou cont pe Instabook. Imediat, a postat n poze, numerotate de la 1 la n, cu care s-a făcut un clasament în care poza 1 ocupă locul 1, poza 2 ocupă locul 2, …, poza n ocupă locul n. Fiecare dintre cei m prieteni ai lui Gigel dau like la o singură poză (prietenul i dă like la poza a[i], 1 ≤ i ≤ m).
Clasamentul pozelor de pe Instabook funcționează în felul următor: la un like dat unei poze, aceasta urcă în clasament cu un loc, cu excepția cazului în care este deja pe primul loc.
Gigel vrea să știe cel mai bun loc și cel mai slab loc din clasament pe care le-a ocupat fiecare poză.
| Problema | Instabook | Operații I/O |
instabook.in/instabook.out
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #64705046 | Utilizator | |
| Fișier | instabook.cpp | Dimensiune | 2.90 KB |
| Data încărcării | 25 Mai 2026, 10:08 | Scor/rezultat | Eroare de compilare |
instabook.cpp:1:124: error: stray ‘\’ in program 1 | Iată o rezolvare eficientă, explicată pe înțelesul unui elev de clasa a 9-a. Deoarece restricțiile sunt destul de mari ($n \le 100.000$ și $m \le 200.000$), nu putem folosi o metodă simplă în care să căutăm poza în clasament la fiecare like, deoarece programul ar rula prea încet și ar depăși timpul legal.În schimb, vom folosi vectori pentru a ține evidența pozițiilor în timp real și vom actualiza cel mai bun și cel mai slab loc de fiecare dată când o poză își schimbă poziția.Strategia de rezolvarePentru a rezolva problema eficient, avem nevoie de câțiva vectori:pozitie_poza[p] – ne spune pe ce loc în clasament se află poza cu numărul p în momentul curent.poza_pe_locul[x] – ne spune ce poză se află în prezent pe locul x în clasament (inversul vectorului de mai sus).minim[p] – reține cel mai bun loc (numărul cel mai mic, de exemplu locul 1 e mai bun decât locul 3) ocupat de poza p.maxim[p] – reține cel mai slab loc (numărul cel mai mare) ocupat de poza p.Ce se întâmplă când poza p primește un like?Dacă poza p este deja pe locul 1, nu se schimbă nimic.Dacă poza p este pe locul K ($K > 1$), ea trebuie să facă schimb de locuri cu poza care se află în acel moment pe locul K - 1 (să o numim poza vecin).După schimb:Poza p ajunge pe locul K - 1. Actualizăm minim[p] cu această nouă valoare dacă este mai mică decât ce aveam înainte.Poza vecin ajunge pe locul K. Actualizăm maxim[vecin] cu această nouă valoare dacă este mai mare decât ce aveam înainte.Codul Sursă (C++)Conform cerinței, citirea și scrierea se vor face normal (poți redirecționa din terminal sau adăuga manual freopen dacă profesorul îți cere explicit lucrul cu fișiere, dar structura de bază folosește doar iostream).C++#include <iostream> | ^ instabook.cpp:1:143: error: stray ‘\’ in program 1 | Iată o rezolvare eficientă, explicată pe înțelesul unui elev de clasa a 9-a. Deoarece restricțiile sunt destul de mari ($n \le 100.000$ și $m \le 200.000$), nu putem folosi o metodă simplă în care să căutăm poza în clasament la fiecare like, deoarece programul ar rula prea încet și ar depăși timpul legal.În schimb, vom folosi vectori pentru a ține evidența pozițiilor în timp real și vom actualiza cel mai bun și cel mai slab loc de fiecare dată când o poză își schimbă poziția.Strategia de rezolvarePentru a rezolva problema eficient, avem nevoie de câțiva vectori:pozitie_poza[p] – ne spune pe ce loc în clasament se află poza cu numărul p în momentul curent.poza_pe_locul[x] – ne spune ce poză se află în prezent pe locul x în clasament (inversul vectorului de mai sus).minim[p] – reține cel mai bun loc (numărul cel mai mic, de exemplu locul 1 e mai bun decât locul 3) ocupat de poza p.maxim[p] – reține cel mai slab loc (numărul cel mai mare) ocupat de poza p.Ce se întâmplă când poza p primește un like?Dacă poza p este deja pe locul 1, nu se schimbă nimic.Dacă poza p este pe locul K ($K > 1$), ea trebuie să facă schimb de locuri cu poza care se află în acel moment pe locul K - 1 (să o numim poza vecin).După schimb:Poza p ajunge pe locul K - 1. Actualizăm minim[p] cu această nouă valoare dacă este mai mică decât ce aveam înainte.Poza vecin ajunge pe locul K. Actualizăm maxim[vecin] cu această nouă valoare dacă este mai mare decât ce aveam înainte.Codul Sursă (C++)Conform cerinței, citirea și scrierea se vor face normal (poți redirecționa din terminal sau adăuga manual freopen dacă profesorul îți cere explicit lucrul cu fișiere, dar structura de bază folosește doar iostream).C++#include <iostream> | ^ instabook.cpp:1:585: error: extended character – is not valid in an identifier 1 | Iată o rezolvare eficientă, explicată pe înțelesul unui elev de clasa a 9-a. Deoarece restricțiile sunt destul de mari ($n \le 100.000$ și $m \le 200.000$), nu putem folosi o metodă simplă în care să căutăm poza în clasament la fiecare like, deoarece programul ar rula prea încet și ar depăși timpul legal.În schimb, vom folosi vectori pentru a ține evidența pozițiilor în timp real și vom actualiza cel mai bun și cel mai slab loc de fiecare dată când o poză își schimbă poziția.Strategia de rezolvarePentru a rezolva problema eficient, avem nevoie de câțiva vectori:pozitie_poza[p] – ne spune pe ce loc în clasament se află poza cu numărul p în momentul curent.poza_pe_locul[x] – ne spune ce poză se află în prezent pe locul x în clasament (inversul vectorului de mai sus).minim[p] – reține cel mai bun loc (numărul cel mai mic, de exemplu locul 1 e mai bun decât locul 3) ocupat de poza p.maxim[p] – reține cel mai slab loc (numărul cel mai mare) ocupat de poza p.Ce se întâmplă când poza p primește un like?Dacă poza p este deja pe locul 1, nu se schimbă nimic.Dacă poza p este pe locul K ($K > 1$), ea trebuie să facă schimb de locuri cu poza care se află în acel moment pe locul K - 1 (să o numim poza vecin).După schimb:Poza p ajunge pe locul K - 1. Actualizăm minim[p] cu această nouă valoare dacă este mai mică decât ce aveam înainte.Poza vecin ajunge pe locul K. Actualizăm maxim[vecin] cu această nouă valoare dacă este mai mare decât ce aveam înainte.Codul Sursă (C++)Conform cerinței, citirea și scrierea se vor face normal (poți redirecționa din terminal sau adăuga manual freopen dacă profesorul îți cere explicit lucrul cu fișiere, dar structura de bază folosește doar iostream).C++#include <iostream> | ^ instabook.cpp:1:681: error: extended character – is not valid in an identifier 1 | Iată o rezolvare eficientă, explicată pe înțelesul unui elev de clasa a 9-a. Deoarece restricțiile sunt destul de mari ($n \le 100.000$ și $m \le 200.000$), nu putem folosi o metodă simplă în care să căutăm poza în clasament la fiecare like, deoarece programul ar rula prea încet și ar depăși timpul legal.În schimb, vom folosi vectori pentru a ține evidența pozițiilor în timp real și vom actualiza cel mai bun și cel mai slab loc de fiecare dată când o poză își schimbă poziția.Strategia de rezolvarePentru a rezolva problema eficient, avem nevoie de câțiva vectori:pozitie_poza[p] – ne spune pe ce loc în clasament se află poza cu numărul p în momentul curent.poza_pe_locul[x] – ne spune ce poză se află în prezent pe locul x în clasament (inversul vectorului de mai sus).minim[p] – reține cel mai bun loc (numărul cel mai mic, de exemplu locul 1 e mai bun decât locul 3) ocupat de poza p.maxim[p] – reține cel mai slab loc (numărul cel mai mare) ocupat de poza p.Ce se întâmplă când poza p primește un like?Dacă poza p este deja pe locul 1, nu se schimbă nimic.Dacă poza p este pe locul K ($K > 1$), ea trebuie să facă schimb de locuri cu poza care se află în acel moment pe locul K - 1 (să o numim poza vecin).După schimb:Poza p ajunge pe locul K - 1. Actualizăm minim[p] cu această nouă valoare dacă este mai mică decât ce aveam înainte.Poza vecin ajunge pe locul K. Actualizăm maxim[vecin] cu această nouă valoare dacă este mai mare decât ce aveam înainte.Codul Sursă (C++)Conform cerinței, citirea și scrierea se vor face normal (poți redirecționa din terminal sau adăuga manual freopen dacă profesorul îți cere explicit lucrul cu fișiere, dar structura de bază folosește doar iostream).C++#include <iostream> | ^ instabook.cpp:1:785: error: extended character – is not valid in an identifier 1 | Iată o rezolvare eficientă, explicată pe înțelesul unui elev de clasa a 9-a. Deoarece restricțiile sunt destul de mari ($n \le 100.000$ și $m \le 200.000$), nu putem folosi o metodă simplă în care să căutăm poza în clasament la fiecare like, deoarece programul ar rula prea încet și ar depăși timpul legal.În schimb, vom folosi vectori pentru a ține evidența pozițiilor în timp real și vom actualiza cel mai bun și cel mai slab loc de fiecare dată când o poză își schimbă poziția.Strategia de rezolvarePentru a rezolva problema eficient, avem nevoie de câțiva vectori:pozitie_poza[p] – ne spune pe ce loc în clasament se află poza cu numărul p în momentul curent.poza_pe_locul[x] – ne spune ce poză se află în prezent pe locul x în clasament (inversul vectorului de mai sus).minim[p] – reține cel mai bun loc (numărul cel mai mic, de exemplu locul 1 e mai bun decât locul 3) ocupat de poza p.maxim[p] – reține cel mai slab loc (numărul cel mai mare) ocupat de poza p.Ce se întâmplă când poza p primește un like?Dacă poza p este deja pe locul 1, nu se schimbă nimic.Dacă poza p este pe locul K ($K > 1$), ea trebuie să facă schimb de locuri cu poza care se află în acel moment pe locul K - 1 (să o numim poza vecin).După schimb:Poza p ajunge pe locul K - 1. Actualizăm minim[p] cu această nouă valoare dacă este mai mică decât ce aveam înainte.Poza vecin ajunge pe locul K. Actualizăm maxim[vecin] cu această nouă valoare dacă este mai mare decât ce aveam înainte.Codul Sursă (C++)Conform cerinței, citirea și scrierea se vor face normal (poți redirecționa din terminal sau adăuga manual freopen dacă profesorul îți cere explicit lucrul cu fișiere, dar structura de bază folosește doar iostream).C++#include <iostream> | ^ instabook.cpp:1:902: error: extended character – is not valid in an identifier 1 | Iată o rezolvare eficientă, explicată pe înțelesul unui elev de clasa a 9-a. Deoarece restricțiile sunt destul de mari ($n \le 100.000$ și $m \le 200.000$), nu putem folosi o metodă simplă în care să căutăm poza în clasament la fiecare like, deoarece programul ar rula prea încet și ar depăși timpul legal.În schimb, vom folosi vectori pentru a ține evidența pozițiilor în timp real și vom actualiza cel mai bun și cel mai slab loc de fiecare dată când o poză își schimbă poziția.Strategia de rezolvarePentru a rezolva problema eficient, avem nevoie de câțiva vectori:pozitie_poza[p] – ne spune pe ce loc în clasament se află poza cu numărul p în momentul curent.poza_pe_locul[x] – ne spune ce poză se află în prezent pe locul x în clasament (inversul vectorului de mai sus).minim[p] – reține cel mai bun loc (numărul cel mai mic, de exemplu locul 1 e mai bun decât locul 3) ocupat de poza p.maxim[p] – reține cel mai slab loc (numărul cel mai mare) ocupat de poza p.Ce se întâmplă când poza p primește un like?Dacă poza p este deja pe locul 1, nu se schimbă nimic.Dacă poza p este pe locul K ($K > 1$), ea trebuie să facă schimb de locuri cu poza care se află în acel moment pe locul K - 1 (să o numim poza vecin).După schimb:Poza p ajunge pe locul K - 1. Actualizăm minim[p] cu această nouă valoare dacă este mai mică decât ce aveam înainte.Poza vecin ajunge pe locul K. Actualizăm maxim[vecin] cu această nouă valoare dacă este mai mare decât ce aveam înainte.Codul Sursă (C++)Conform cerinței, citirea și scrierea se vor face normal (poți redirecționa din terminal sau adăuga manual freopen dacă profesorul îți cere explicit lucrul cu fișiere, dar structura de bază folosește doar iostream).C++#include <iostream> | ^ instabook.cpp:1:1699: error: stray ‘#’ in program 1 | Iată o rezolvare eficientă, explicată pe înțelesul unui elev de clasa a 9-a. Deoarece restricțiile sunt destul de mari ($n \le 100.000$ și $m \le 200.000$), nu putem folosi o metodă simplă în care să căutăm poza în clasament la fiecare like, deoarece programul ar rula prea încet și ar depăși timpul legal.În schimb, vom folosi vectori pentru a ține evidența pozițiilor în timp real și vom actualiza cel mai bun și cel mai slab loc de fiecare dată când o poză își schimbă poziția.Strategia de rezolvarePentru a rezolva problema eficient, avem nevoie de câțiva vectori:pozitie_poza[p] – ne spune pe ce loc în clasament se află poza cu numărul p în momentul curent.poza_pe_locul[x] – ne spune ce poză se află în prezent pe locul x în clasament (inversul vectorului de mai sus).minim[p] – reține cel mai bun loc (numărul cel mai mic, de exemplu locul 1 e mai bun decât locul 3) ocupat de poza p.maxim[p] – reține cel mai slab loc (numărul cel mai mare) ocupat de poza p.Ce se întâmplă când poza p primește un like?Dacă poza p este deja pe locul 1, nu se schimbă nimic.Dacă poza p este pe locul K ($K > 1$), ea trebuie să facă schimb de locuri cu poza care se află în acel moment pe locul K - 1 (să o numim poza vecin).După schimb:Poza p ajunge pe locul K - 1. Actualizăm minim[p] cu această nouă valoare dacă este mai mică decât ce aveam înainte.Poza vecin ajunge pe locul K. Actualizăm maxim[vecin] cu această nouă valoare dacă este mai mare decât ce aveam înainte.Codul Sursă (C++)Conform cerinței, citirea și scrierea se vor face normal (poți redirecționa din terminal sau adăuga manual freopen dacă profesorul îți cere explicit lucrul cu fișiere, dar structura de bază folosește doar iostream).C++#include <iostream> | ^ instabook.cpp:1:1: error: ‘Iată’ does not name a type 1 | Iată o rezolvare eficientă, explicată pe înțelesul unui elev de clasa a 9-a. Deoarece restricțiile sunt destul de mari ($n \le 100.000$ și $m \le 200.000$), nu putem folosi o metodă simplă în care să căutăm poza în clasament la fiecare like, deoarece programul ar rula prea încet și ar depăși timpul legal.În schimb, vom folosi vectori pentru a ține evidența pozițiilor în timp real și vom actualiza cel mai bun și cel mai slab loc de fiecare dată când o poză își schimbă poziția.Strategia de rezolvarePentru a rezolva problema eficient, avem nevoie de câțiva vectori:pozitie_poza[p] – ne spune pe ce loc în clasament se află poza cu numărul p în momentul curent.poza_pe_locul[x] – ne spune ce poză se află în prezent pe locul x în clasament (inversul vectorului de mai sus).minim[p] – reține cel mai bun loc (numărul cel mai mic, de exemplu locul 1 e mai bun decât locul 3) ocupat de poza p.maxim[p] – reține cel mai slab loc (numărul cel mai mare) ocupat de poza p.Ce se întâmplă când poza p primește un like?Dacă poza p este deja pe locul 1, nu se schimbă nimic.Dacă poza p este pe locul K ($K > 1$), ea trebuie să facă schimb de locuri cu poza care se află în acel moment pe locul K - 1 (să o numim poza vecin).După schimb:Poza p ajunge pe locul K - 1. Actualizăm minim[p] cu această nouă valoare dacă este mai mică decât ce aveam înainte.Poza vecin ajunge pe locul K. Actualizăm maxim[vecin] cu această nouă valoare dacă este mai mare decât ce aveam înainte.Codul Sursă (C++)Conform cerinței, citirea și scrierea se vor face normal (poți redirecționa din terminal sau adăuga manual freopen dacă profesorul îți cere explicit lucrul cu fișiere, dar structura de bază folosește doar iostream).C++#include <iostream> | ^~~~ instabook.cpp: In function ‘int main()’: instabook.cpp:11:5: error: ‘ios_base’ has not been declared 11 | ios_base::sync_with_stdio(false); | ^~~~~~~~ instabook.cpp:12:5: error: ‘cin’ was not declared in this scope 12 | cin.tie(NULL); | ^~~ instabook.cpp:12:13: error: ‘NULL’ was not declared in this scope 12 | cin.tie(NULL); | ^~~~ instabook.cpp:1:1: note: ‘NULL’ is defined in header ‘<cstddef>’; did you forget to ‘#include <cstddef>’? +++ |+#include <cstddef> 1 | Iată o rezolvare eficientă, explicată pe înțelesul unui elev de clasa a 9-a. Deoarece restricțiile sunt destul de mari ($n \le 100.000$ și $m \le 200.000$), nu putem folosi o metodă simplă în care să căutăm poza în clasament la fiecare like, deoarece programul ar rula prea încet și ar depăși timpul legal.În schimb, vom folosi vectori pentru a ține evidența pozițiilor în timp real și vom actualiza cel mai bun și cel mai slab loc de fiecare dată când o poză își schimbă poziția.Strategia de rezolvarePentru a rezolva problema eficient, avem nevoie de câțiva vectori:pozitie_poza[p] – ne spune pe ce loc în clasament se află poza cu numărul p în momentul curent.poza_pe_locul[x] – ne spune ce poză se află în prezent pe locul x în clasament (inversul vectorului de mai sus).minim[p] – reține cel mai bun loc (numărul cel mai mic, de exemplu locul 1 e mai bun decât locul 3) ocupat de poza p.maxim[p] – reține cel mai slab loc (numărul cel mai mare) ocupat de poza p.Ce se întâmplă când poza p primește un like?Dacă poza p este deja pe locul 1, nu se schimbă nimic.Dacă poza p este pe locul K ($K > 1$), ea trebuie să facă schimb de locuri cu poza care se află în acel moment pe locul K - 1 (să o numim poza vecin).După schimb:Poza p ajunge pe locul K - 1. Actualizăm minim[p] cu această nouă valoare dacă este mai mică decât ce aveam înainte.Poza vecin ajunge pe locul K. Actualizăm maxim[vecin] cu această nouă valoare dacă este mai mare decât ce aveam înainte.Codul Sursă (C++)Conform cerinței, citirea și scrierea se vor face normal (poți redirecționa din terminal sau adăuga manual freopen dacă profesorul îți cere explicit lucrul cu fișiere, dar structura de bază folosește doar iostream).C++#include <iostream> instabook.cpp:51:9: error: ‘cout’ was not declared in this scope 51 | cout << maxim[i] << " " << minim[i] << "\n"; | ^~~~
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Instabook face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.