🟠 Վարժություն 27 🐸
Օգնեք գորտին գտնել ճանապարհը դեպի ազատություն։
Գորտը գտնվում է զանգվածի առաջին էլեմենտի դիրքում։ Զանգվածի յուրաքանչյուր էլեմենտ ցույց է տալիս գորտի ցատկի երկարությունը և ուղղությունը։
Եթե թիվը բացասական է, ապա գորտը ցատկում է դեպի ձախ, եթե դրական է՝ դեպի աջ։
0-ի
դեպքում գորտը մնում է նույն դիրքում։ Ծրագիրը պետք էկրանին տպի ցատկերի քանակը, որն անհրաժեշտ է, որպեսզի գորտը դուրս գա զանգվածի սահմաններից (աջից կամ ձախից)։ Եթե գորտը չի կարողանում դուրս գալ զանգվածից, ապա էկրանին անհրաժեշտ է տպել
-1
։Խնդիրը ավելի լավ հասկանալու համար, դիտարկենք մի քանի օրինակ:
🐸
[1, 2, 2, -1]
- Գորտը գտնվում է զանգվածի զրոյական դիրքում, որտեղ գրված է 1
։ Սա նշանակում է, որ գորտը կարող է ցակտել մեկ քայլ դեպի աջ, որից հետո կհայտնվի զանգվածի առաջին դիրքում։ 🐸
[1, 2, 2, -1]
- Այս դիրքում գրված է 2
, սա նշանակում է, որը գորտը կարող է ցատկել երկու քայլ դեպի աջ, որից հետո կհայտնվի զանգվածի երրորդ դիրքում։ 🐸
[1, 2, 2, -1]
- Այս դիրքում գրված է -1
, սա նշանակում է, որ գորտը կարող է ցատկել մեկ քայլ դեպի ձախ, որից հետո կհայտնվի զանգվածի երկրորդ դիրքում։ 🐸
[1, 2, 2, -1]
- Այս դիրքում գրված է 2
, սա նշանակում է, որ գորտը կարող է ցատկել երկու քայլ դեպի աջ, որից հետո կհայտնվի զանգվածից դուրս։ 🐸
[1, 2, 2, -1]
- Այս օրինակում, զանգվածից դուրս գալու համար, գորտը կատարեց 4 ցատկ, և հետևաբար ծրագիրը էկրանին պետք է տպի 4։Դիտարկենք ևս մեկ օրինակ՝
🐸
[1, 2, 3, 0]
- Գորտը գտնվում է զանգվածի զրոյական դիրքում, որտեղ գրված է 1
։ Սա նշանակում է, որ գորտը կարող է ցակտել մեկ քայլ դեպի աջ, որից հետո կհայտնվի զանգվածի առաջին դիրքում։ 🐸
[1, 2, 3, 0]
- Այս դիրքում գրված է 2
, սա նշանակում է, որ գորտը կարող է ցատկել երկու քայլ դեպի աջ, որից հետո կհայտնվի զանգվածի երրորդ դիրքում։ 🐸
[1, 2, 3, 0]
- Այս դիրքում գրված է 0
և գորտը այլևս չի կարողանա ցատկ կատարել և հետևաբար չի կարողանա դուրս գալ զանգվածի սահմաններից։ Ծրագիրը պետք է տպի էկրանին -1։
#include <iostream>
#include <vector>
int main() {
std::vector<int> arr;
int size;
std::cout << "Insert vector size ";
std::cin >> size;
std::cout << size << std::endl;
std::cout << "Insert vector elements: ";
for (int i = 0; i < size; ++i) {
int in;
std::cin >> in;
std::cout << in << " ";
arr.push_back(in);
}
std::cout << std::endl;
// Put your code here
}
Constraints
Time limit: 1 seconds
Memory limit: 512 MB
Output limit: 1 MB