Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Cho mảng số nguyên ~A~ có ~n~ phần tử, hãy tìm 2 phần tử lân cận trong mảng sao cho tổng của chúng là lớn nhất. Giả sử phần tử cuối cùng và phần tử đầu tiên cũng có tính lân cận (tạo thành vòng tròn khép kín)
Input
- Dòng 1 là số lượng phần tử của mảng ~n~
- Dòng tiếp theo là ~n~ số nguyên tương ứng là các phần tử của mảng
Giới hạn:
- ~n \in N^*~ và ~2 \le n \le 10^4~
- ~|A_{i}| \le 10^8~
Output
In ra 2 phần tử lân cận nhau (cách nhau bởi 1 dấu cách) thỏa mãn yêu cầu đề bài.
Lưu ý:
- Giữ nguyên thứ tự ban đầu của chúng
- Nếu có nhiều kết quả, in ra kết quả ở chỉ số mảng (của phần tử đầu tiên) lớn hơn
- Nếu phần tử cuối cùng và phần tử đầu tiên là cặp có tổng lớn nhất, in phần tử cuối cùng trước (Xem sample #1).
Sample
Input #1
5
3 2 -1 2 4
Output #1
4 3
Input #2
6
1 2 6 1 6 2
Output #2
6 2
Bình luận
Ai giải thích giúp mik là mik sai ở đâu đc k ạ ? thấy output toàn ra số lung tung
include <bits/stdc++.h>
using namespace std; long long a,b,c,n,m; int main() { cin >> n; int a[n]; for (int i=0;i<n;i++) { cin >> a[i]; } for (int i=0;i<n;i++) { if (a[i]+a[n]>m) { m=a[i]+a[n]; b=a[i]; c=a[n]; n--; } } cout << c << " " << b; return 0; }
Sử dụng con trỏ nha mọi người, copy vào ide đọc cho dễ
include <iostream>
include<cmath>
include <cctype>
include<vector>
include<algorithm>
include<set>
using namespace std; void perfectcouple(int n, int arr[]){ int tmp=0; int *ptr; int *ptr1; tmp=arr[n-1]+arr[0]; ptr=&arr[n-1]; ptr1=&arr[0]; for(int i=0; i<n-1; ++i){ if(tmp<arr[i]+arr[i+1]){ tmp=arr[i]+arr[i+1]; ptr=&arr[i]; ptr1=&arr[i+1]; } } cout<<*ptr<<" "<<*ptr1; } int main(){ int n; cin>>n; int ar[n]; for(int i=0; i<n; ++i){ cin>>ar[i]; } perfectcouple(n, ar); }
#include<bits/stdc++.h>
using namespace std; int main() { int n; cin>>n; int a[n]; for(int i=0;i<n;i++) cin>>a[i]; int max=a[0]+a[1]; int c=0; for(int i=0;i<n-1;i++) { if(a[i]+a[i+1]>=max) { max=a[i]+a[i+1]; c=i; } } if(a[n-1]+a[0]>max) cout<<a[n-1]<<" "<<a[0]; else cout<<a[c]<<" "<<a[c+1]; } c++
n=int(input()) a=input().split() a=list(map(int, a)) a=a+[a[0]] day=[] tong=0 for i in range(len(a)-1): day.append(a[i]+a[i+1]) d=max(day) m1=0 idex=[] day1=[] for i in range(len(a)-1): if d==a[i]+a[i+1]: idex.append(i) day1.append(a[i]) for i in idex: if max(day1)==a[i]: print(a[i],a[i+1]) python 3 cho bạn nào cần
Quá dễ ae ơi!
include<bits/stdc++.h>
using namespace std; int main() { int n; cin>>n; int a[n]; for(int i=0;i<n;i++){ cin>>a[i]; } int x=a[0]+a[n-1]; int y=a[0]; int z=a[n-1]; for(int i=1;i<n-1;i++) { if(x<a[i]+a[i+1]) { x=a[i]+a[i+1]; y=a[i]; z=a[i+1]; } } if(x==a[0]+a[n-1]) cout<<z<<" "<<y; else cout<<y<<" "<<z; return 0; }
mn hạn chế part code đi nếu ai hỏi bài chỉ ý tưởng cho ngta để họ suy nghỉ chơ đừng part code cứ sao chép nộp vào đó cũng là bài của họ thôi chơ không phải của mình .Thank mình góp ý vậy.
Tùy người thôi ông cũng có người xem code để tham khảo ý tưởng cũng có người lười thì chép luôn của người khác
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
include<stdio.h>
include<math.h>
int main(){ int n; scanf("%d", &n); int a[n]; for(int i=0; i<n; i++){ scanf("%d", &a[i]); } int max=-2*pow(10,8); if((a[0]+a[n-1])>max) max=(a[0]+a[n-1]); for(int i=0; i<n-1; i++){ if((a[i]+a[i+1])>max) max=(a[i]+a[i+1]); } int b, c; for(int i=0; i<n-1; i++){ for(int j=i+1; j<n; j++){ if((a[i]+a[j])==max){ b=a[i]; c=a[j]; } } } if(max==(a[0]+a[n-1])){ b=a[n-1]; c=a[0]; } printf("%d %d", b, c); }
code c++ đây
include <iostream>
using namespace std; int main() { int n,k,x,y; cin>>n>>k; long long max=0,v1,v2; for (int i=1; i<n; ++i) { cin>>y; if (x+y>=max) { max=x+y; v1=x; v2=y; } if (i==n-1) { if (y+k>=max) { max=y+k; v1=y; v2=k; } } x=y; } cout<<v1<<" "<<v2; }
Java 8+ đã AC chào các đạo hữu, thấy hay thì xin up vote ạ <3
Cho em xin test case số 1 với ạk
dạ tại sao em không thể submit bằng C# vậy nhỉ, đa số bài nào cũng kh nộp được
Bạn xem bên allowed languages kìa
include <iostream>
#include <cmath>
int main() { int size; std::cin >> size; long int* number = new long int[size]; for (int i = 0; i < size; i++) { std::cin >> number[i]; } long int a = 0, b = 0; bool manyresult = false; int max = *number + *(number + 1); for (int i = 1; i < size; i++) { if (i < size - 1) { if (max == number[i] + number[i + 1]) { manyresult = true; break; } if (max < number[i] + number[i + 1]) { max = number[i] + number[i + 1]; a = number[i]; b = number[i + 1]; } } else { if (max == number[i] + number[0]) { manyresult = true; } if (max < number[i] + number[0]) { max = number[i] + number[0]; a = number[i]; b = number[0]; } } } if (manyresult) { std::cout << fmax(a, b) << " " << fmin(a, b) << std::endl; } else std::cout << a << " " << b << std::endl; delete[] number; return 0; }
cùng một thuật toán mà c++ lại được mà c# lại không được là như thế nào vậy ạ?
code c++ :
include<bits/stdc++.h>
using namespace std; int main(){ int n;cin>>n; int a[n]; for(int i=0;i<n;i++) cin>>a[i]; int max=a[0]+a[1]; int c=0; for(int i=0;i<n-1;i++){ if(a[i]+a[i+1]>=max) { max=a[i]+a[i+1]; c=i; } } if(a[n-1]+a[0]>max) cout<<a[n-1]<<" "<<a[0]; else cout<<a[c]<<" "<<a[c+1];
}
code c#(ko pass):
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace mang4 { class Program {
}