配列AとB、及び目標値Xの昇順に順序付け二つの与えられました。配列のインデックスは0から始まります。
決定されたA [i]が+ B番号[j] = X対(i、j)を満たしてください。
データは独自のソリューションを持っていることを確認してください。
入力形式
最初の行は三つの整数N、M、Xを含み、Aはそれぞれの長さの長さ、B、およびXの目標値を表します。
2行目は、配列Aを表す整数Nを含んでいます
第3段目は、m個の整数を含む配列Bを表します
出力フォーマット
二つの整数iとjを備え、合計行、。
データ範囲
配列の長さではない100,000以下。
同じアレイ内の要素が変わります。
1≤配列要素≤109
サンプル入力:
4 5 6
1 2 4 7
3 4 6 8 9
出力例:
1 1
#include <iostream>
using namespace std;
const int N = 100010;
int n, m, k;
int a[N], b[N];
int main()
{
scanf("%d%d%d", &n, &m, &k);
for(int i = 0; i < n; i ++) cin >> a[i];
for(int i = 0; i < m; i ++) cin >> b[i];
for(int i = 0, j = m - 1; i < n; i ++)
{
while(j >= 0 && a[i] + b[j] > k) j --;
if(a[i] + b[j] == k)
{
printf("%d %d\n", i, j);
break;
}
}
return 0;
}