題意
給 n 個整數,兩個數字加起來剛好等於 x
解題方法
利用 C++ 內建的 map <int,int> 來紀錄每個元素的位置。
#include <bits/stdc++.h>
using namespace std;
int main(){
map <int,int> mp;
int n, x;
cin >> n >> x;
vector <int> a(n);
for(int i = 0;i < n;i++){
cin >> a[i];
}
for(int i = 0;i < n;i++){
if(mp.count(x-a[i])){
cout << i+1 << ' ' << mp[x-a[i]]+1 << '\n';
return 0;
}
mp[a[i]] = i;
}
cout << "IMPOSSIBLE\n";
}
主要知識:基礎資料結構 (basic data structures)
發表迴響