Dãy số đặc biệt
Một dãy số được gọi là đặc biệt khi đọc từ trái sang phải cũng giống như đọc từ phải sang trái. Chẳng hạn:
- Dãy số (21,1,9,1,21) là dãy số đặc biệt
- Dãy số (1,7,8,9,1) không phải là dãy số đặc biệt
Yêu cầu: Cho số nguyên dương N và dãy số A gồm N phần tử a1,a2,...,an mỗi phần tử là một số nguyên dương. Hãy tìm ít nhất các phần tử cần chèn thêm vào dãy để dãy A trở thành dãy số đặc biệt.
Dữ liệu vào: Cho trong tệp văn bản DSBD.INP gồm:
- Dòng 1: Một số nguyên duy nhất N (1≤N≤103).
- Dòng 2: Ghi N số nguyên dương a1,a2,...,an (1≤ai≤109,∀i=1→n).
Kết quả: Ghi trong tệp văn bản DSDB.OUT một số nguyên duy nhất là kết quả tìm được.
Ví dụ:
DS.INPDS.OUT521 7 8 9 1
Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
import sys
sys.stdin=open('DSBD.INP','r')
sys.stdout=open('DSDB.OUT','w')
n=int(input())
a=list(map(int,input().split()))
i,j=0,n-1
dem=0
while i<j:
if a[i]==a[j]:
i+=1
j-=1
else:
dem+=1
j-=1
print(dem)
Hãy giúp mọi người biết câu trả lời này thế nào?
#include <bits/stdc++.h>
using namespace std ;
#define ll long long
int main(){
ll n ; cin >> n ;
ll a[n] ;
for(ll i = 0 ; i < n ; i++ ) cin >> a[i] ;
ll i = 0 , j = n -1 ;
ll cnt = 0 ;
while(i < j ) {
if(a[i] == a[j]) {
i++ ;
j-- ;
}
else {
cnt++ ;
j-- ;
}
}
cout << cnt ;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin